|
|
|
| Проблема такова:
из-под Access программно генерится Word-документ и сохраняется на винт. Хотелось бы также программно сконвертить его в PDF опять же с сохранением. Кусок кода, приведенный ниже не приводит к желаемому результату, хотя функция CreatePDF возвращает True:
Dim apdf As AdobePDFMakerX.Word
Dim boolRez As Boolean
Set apdf = New AdobePDFMakerX.Word
boolRez = apdf.CreatePDF("c: ew.doc", "c: ew.pdf")
Чего я делаю не так? | |
|
| |
|
|
|
| В PDF - Круто...
Интересно возможно такое .
Чёт никто не отвечат - хотя в выходные дни тута тихо - "Доживём до понедельника"
хотя пока можно посмотреть
http://www.lebans.com/reporttopdf.htm
http://www.sql.ru/forum/actualthread.aspx?bid=4&tid=440155&hl=
http://www.softsoft.ru/business/databases-tools/2396.htm | |
|
| |
|
|
|
| Варианты
1. Для Office 2007 у Microsoft есть бесплатный Save as PDF add-in.
2. Если установлен Acrobat Distiller, то можно воспользоваться его объектной моделью.
3. Печать в в файл с помощью любого PostScript принтера и последующая конвертация в PDF с помощью PostScript2PDF конвертера, например, бесплатного Ghostscript
Что такое AdobePDFMakerX не знаю и вы не пояснили. | |
|
| |
|
|
|
| вариант 4 - печать в PDF при помощи софт-пдф-принтера
я использую PDF-XChange 3
доволен как таракан | |
|
| |
|
|
|
| Я не рассматривал этот вариант, так как в общем случае он не позволяет задать имя PDF программно, а именно это, как мне показалось, необходимо автору темы.
Для некоторых PDF принтеров можно задать имя выходного файла через реестр, но ...
2 Explorer - С возвращением! | |
|
| |
|
|
|
| для PDF-XChange можно в настройках указать Predefined Values для имени файла -
например дата год путь и т.п.
самое простое правило - результат сохраняется под именем того документа, который конвертируется/печатается (то что и спрашивает автор) | |
|
| |
|
|
|
| Увы, насколько я понял, он не Freeware, рассчитывать, что клиент купит данный софт впридачу к моему нельзя. Поэтому лично для меня оптимальным вариантом является использование в моем продукте 3-го варианта (Печать в в файл с помощью любого PostScript принтера и последующая конвертация в PDF с помощью PostScript2PDF конвертера, например, бесплатного Ghostscript)
Этот вариант не требует никаких дополнитетельных затрат от клиента.
Но на случай, если клиент имеет Acrobat Professional, я включаю и его поддержку.
Для пользователей Office 2007 все проблемы с получением PDF вообще отпадают. | |
|
| |
|
|
|
| Спасибо за многовариантный ответ.
>Варианты
>1. Для Office 2007 у Microsoft есть бесплатный Save as PDF
>add-in.
заказчик пользует 2000-й
>2. Если установлен Acrobat Distiller, то можно
>воспользоваться его объектной моделью.
>3. Печать в в файл с помощью любого PostScript принтера и
>последующая конвертация в PDF с помощью PostScript2PDF
>конвертера, например, бесплатного Ghostscript
Такой вариант смотрел пока вприглядку (наткнулся на документ, в котором подробно и пошагово описан такой алгоритм)
>Что такое AdobePDFMakerX не знаю и вы не пояснили.
Т.к. я столкнулся с этой проблемой впервые, то просто подключил в ссылках все, что было связано с Adobe и PDF и стал просматривать методы. А когда встретил CreatePDF с именем исходного doc-файла, то, естественно захотел попробовать. Увы, с ходу не вышло. О там как вышло, см. ниже в моем же ответе на мое же письмо.
Борис | |
|
| |
|
|
|
| А заказчик использует Adobe Acrobat Professional? Версия?
Могло бы быть и так:
Dim oDistiller As Object
'Set oDistiller = CreateObject("PDFDistiller.PDFDistiller.1") 'Acrobat 5
Set oDistiller = CreateObject("ACRODISTXLib.PdfDistiller6") 'Acrobat 6
oDistiller.FileToPDF vstrPSFile, vstrPDFFile, ""
|
| |
|
| |
|
|
|
| я сделал так:
Подключил PDFMarkerAPI 1.0 Type Library ( она становится с Acrobat Prof 7) затем
Dim pdfma As PDFMakerApp
Dim i As Long
Set pdfma = New PDFMakerApp
i = pdfma.CreatePDF("C:ew.doc", "C:ew.pdf")
и это сработало.
Правда в чем неправильность в исходном сообщении - ясности так и нет. | |
|
| |
|
|
|
|
и все. Правда в чем неправильность в исходном сообщении - ясности так и нет.
|
какую версию Acrobat вы используете? | |
|
| |
|
|
|
| Нет, в ыходные дни тут тоже "громко"
Serge Gavrilov - с возвращением Toж. | |
|
| |
|
|
|
| Acrobat Prof 7, правда у заказчика кажется 6-й | |
|
| |
|
|
|
| И, кстати, любопытная штука:
У меня на двух компах дома по две операционки (XP). На каждой из машин под каждой из операционок стоит Acrobat Prof 7 (под первыми операционками везде инсталировался Typical, под вторыми операционками как Full). Версии подключаемой dll для полной и для типичной инсталяции вроде бы одинаковые. Однако там где Typical, программка не работает (хотя код возврата функции - успешный), а там где Full - это же приложение работает. Правда под вторыми операционками везде стоит Оффис-2000, а под первыми Оффис-2003 и Оффис-XP. Но тем не менее вот такой глючокс.
Борис
Да, забыл добавить, что под первыми операционками Acrobat обновлялся через Интеонет, а на вторых связь не налажена, поэтому стоит As Is. | |
|
| |