|
|
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Перед тем как что-то делать хочу попытаться осознать идею. Стоит задача отправки факса через некую программу. Суть такая: если есть файл ".tif", то можно написать shell(proga.exe файл.tif Номер_куда_слать) и все будет "как надо". Ключевым является вопрос создания этого "tif". Решение лежит на поверхности: подходят файлы, кот. генерирует принтер "Microsoft Fax". Т.е. Печать->Принтер FAX (Microsoft Fax)->Опция печать в файл->выбираем/набираем имя файла tif для сохранения и получаем его в заданном месте. По идее хотелось бы по слову печать выбирать слово "Клон Microsoft Fax", после выбора параметров по кнопке печать происходило бы сохр. в файл а далее бы запускалась форма ввода номера, или бы скажем "Мастер" доходил бы до конца, но файл с номером направлялся бы не на службу факсов MS, а в командную строку рассматриваемой проги. Возможно ли энто осуществить? так или иначе MS-fax использовать придется, ибо так универсально генерировать tiff-ы(правильного!!! формата) больше никто не умеет, если только libtiff, но это боюсь будет не универсально. Пишу здесь ибо "более менее нормально" владею только VB6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 03:55 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Кстати, ActiveReports прекрасно умеет экспортировать свои отчеты в TIFF-файлы: [quote]ActiveReports includes multiple export filters to transform your report output into Rich Text Format for word-processing, Portable Document Format (PDF) for global file transfer, EXCEL format, HTML format for web viewing, TIFF format for faxing , and delimited text for spreadsheets and database use.[/quote] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 08:42 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Честно, не знаю что такое ActiveReports, но догадываюсь что это некая навороченная система, да и вряд ли она универсальна. Нужен именно универсальный простой способ коим являеся печать. Понятно, что для частных случаев:Excel,Word можно написать макрос, что нек. графические форматы можно преобразовать утилитами libtiff и им подобными, но это частные случаи. Хотелось бы именно как принтер. Microsoft Fax вполне подходит. Т.е. по сути вопрос делится на 2ю 1)Как написать принтер (на VB???)-поиск смотрел 2)Как запрограмировать команду печать в файл через Microsoft Fax? (Очевидно как-то надо вызывать Microsoft Shared Fax Library, м.б. это и возможно через VB) Если 1-2 решается, то команду 2) запихнуть в то что должен делать принтер 1), а потом передать все это хозяйство в командную строку факс-утилиты на исполнение (в рамках принтера). И тогда все будет хорошо. Сейчас понял что часть вопроса я сам же здесь когда-то поднимал. /topic/452165&hl=%ef%e5%f7%e0%f2%fc /topic/451576&hl=%ef%e5%f7%e0%f2%fc но получились лишь частичные наработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 11:51 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Честно, не знаю что такое ActiveReports Ну скажем так - это значительно более продвинутый DataReport от VB6. Дмитрий77 Понятно, что для частных случаев:Excel,Word можно написать макрос, что нек. графические форматы можно преобразовать утилитами libtiff и им подобными, но это частные случаи. Хотелось бы именно как принтер. Э... SnagIt Printer? Вообще же непонятно что нужно в итоге. Если из программы на VB6 нужно сохранить рисунок как TIFF-файл, то можно почитать, к примеру, здесь: http://www.activevb.de/tipps/vb6tipps/tipp0688.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 16:08 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Да нет.. это не то все. Если из формы VB, и картинка, то Kodak Imaging, по моей ссылке есть мой же пример кода.Нужно сделать именно принтер . Вот еще скачал http://sourceforge.net/projects/imageprinter/, все бы неплохо, можно было бы влесть в код и переписать для себя, но он зараза tif-ы неправильные делает, а Microsoft понятно кодов своего Fax не дает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 16:46 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Да нет.. это не то все. Если из формы VB, и картинка, то Kodak Imaging, по моей ссылке есть мой же пример кода.Нужно сделать именно принтер . Вот еще скачал http://sourceforge.net/projects/imageprinter/, все бы неплохо, можно было бы влесть в код и переписать для себя, но он зараза tif-ы неправильные делает, а Microsoft понятно кодов своего Fax не дает... ваша задача нетривиальна. за такие контролы фирмы денег многа хотят, можете в инете посмотреть. а вообще юзайте виртуальный принтер Ghostscript, он бесплатен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 16:50 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Дмитрий77но он зараза tif-ы неправильные делает, а Microsoft понятно кодов своего Fax не дает... Ну замените там собственно код создания TIFF-ов на более правильный, если все остальное устраивает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 17:53 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Это хорошая идея. Понять бы для начала как ентот код компилировать, ибо там половина на паскале, половина на c++, а vcc+ project отсутствует, придется изучать как пользоваться компилятором c++ из командной строки, м.б. даже в линуксе сперва придется пробовать через make . А уж формат тифа где делается думаю найду (204х198 или 204х196 надо), ибо там libtiff использован, а он "правильные" tiff-ы знает. Тогда можно будет и system(proga.exe); добавить куда нибудь. Действительно нетривиально и не на VB, и не на одну ночь. Более конкретный вопрос, уж не знаю насколько простой. 1) Есть установленный в системе принтер (допустим имя известно). PRINTER 2) Есть файл DOKUMENT.XXX, для кот. доступно слово "Печать" (word, txt, xls, картинка), скажем в с-ме известно чем открывается и эта программа умеет его системно печатать. 3) Хочу: напечатать DOKUMENT.XXX на принтер PRINTER c опцией ПЕЧАТЬ В ФАЙЛ и сохранить в файле PATH\REZULTOFPRINT.YYY Это на VB возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 18:19 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Дмитрий771)Как написать принтер (на VB???)-поиск смотрел 2)Как запрограмировать команду печать в файл через Microsoft Fax?1) Принтер — это драйвер. Драйвера на VB не пишутся. 2) Без лишних вопросов от драйвера? Не получится. Зато получится мониторить определенную папку, в которую можно сохранять тифы, напечатанные обычным способом. При появлении файла делать shell, а когда shell закончится — удалять. Еще немного поплясав с бубном, можно написать мониторчик, который ждет появления окна печати на факс и сам вводит все необходимое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 18:21 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
2) >>Без лишних вопросов от драйвера? Не получится Здесь без вопросов печатается (Imaging) Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 19:28 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Вот, нашел умную вещь, Код: plaintext 1. 2. 3. 4. 1) как здесь выбрать принтер, если искомый не по умолчанию 2) если это Microsoft Fax, то первое диалоговое окно(где ставится галка печать в файл) вообще пропускается, где-то в программе надо задать "Печать в файл, файл такой-то" Еще нашел вот это: http://support.microsoft.com/kb/154078 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2008, 17:08 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
AndrFДмитрий77но он зараза tif-ы неправильные делает, а Microsoft понятно кодов своего Fax не дает... Ну замените там собственно код создания TIFF-ов на более правильный, если все остальное устраивает... Гы...легко сказать.Заменил,блин... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В случае dpi=200 внешне при просмотре все прилично, но факс после передачи вылезает в 2р растянутым по вертикали, т.е. разрешение Fine почему-то воспринимается как Normal. (В свойствах генерируемых файлов tif информация про разрешение напрочь отсутствует.) Чтобы этот код грамотно менять, надо теорию этих тифов знать. М.б. проще все же Microsoft Fax грамотно оприходовать средствами VB, чем с Open-сорсами ковыряться? Вот этот код ниже действительно создает test.tif (Default="Fax"), и печатает туда "Hello World!" Но он печатает текст, а не файл из произвольного приложения,кот. ассоциировано с файлом.Т.е. опять частный случай, и тупик. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2008, 04:45 |
|
||
|
Как сделать принтер или как его клонировать и 'подправить'!
|
|||
|---|---|---|---|
|
#18+
Antonariy2) Без лишних вопросов от драйвера? Не получится. Зато получится мониторить определенную папку, в которую можно сохранять тифы, напечатанные обычным способом. При появлении файла делать shell, а когда shell закончится — удалять. Еще немного поплясав с бубном, можно написать мониторчик, который ждет появления окна печати на факс и сам вводит все необходимое. В общем, если оприходовать Microsoft Fax, то я сделал так. g_objFaxServer_OnOutgoingJobAdded мониторит не "папку" а сам сервер, и при появлении очередного задания мило тырит и сам tiff, и номер, куда его посылать, и вызывает отнюдь не майкрософтовскую процедуру Shell "sendfax.bat "... Таким образом, любая печать на Microsoft Fax переводит стрелку совсем на другой путь. ф-ция SendFaxAuto генерит задание автоматом из любого файла, кот. может быть напечатан. Судьба этого задания будет такая же. Естественно надо писать обработку ошибок вида "печатаемого" файла, можно мониторить скажем не все задания, а лишь те, кот. предназначены скажем "ToVasja". Также думаю полезно ставить дату-время начала задания в будущем времени, чтобы исключить "захват" задания самим Microsoft-сервером, это все актуально если сервер используется и сам по себе. Имя файла в SendFaxAuto тоже требует обработки, м.б. имеет смысл конвертировать в дос-формат, ибо Documents And Settings/Рабочий стол... может передаваться в кач. параметра некорректно. Ну диалоговое окно для выбора файла добавить comdlg как помню. Дальнейшая обработка факс-задания понятно уже выходит за рамки описанного тут. Но это все уже details. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2008, 19:21 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35737461&tid=2161481]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 390ms |

| 0 / 0 |
