Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Конвертация Doc->Pdf из-под Access ?
 
 автор: Zhukov Boris   (08.12.2007 в 17:47)   личное сообщение
 
 

Проблема такова:
из-под 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")

Чего я делаю не так?

  Ответить  
 
 автор: час   (09.12.2007 в 10:18)   личное сообщение
 
 

В 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

  Ответить  
 
 автор: Serge Gavrilov   (09.12.2007 в 14:36)   личное сообщение
 
 

Варианты
1. Для Office 2007 у Microsoft есть бесплатный Save as PDF add-in.
2. Если установлен Acrobat Distiller, то можно воспользоваться его объектной моделью.
3. Печать в в файл с помощью любого PostScript принтера и последующая конвертация в PDF с помощью PostScript2PDF конвертера, например, бесплатного Ghostscript

Что такое AdobePDFMakerX не знаю и вы не пояснили.

  Ответить  
 
 автор: Explorer   (09.12.2007 в 15:35)   личное сообщение
 
 

вариант 4 - печать в PDF при помощи софт-пдф-принтера

я использую PDF-XChange 3

доволен как таракан

  Ответить  
 
 автор: Serge Gavrilov   (09.12.2007 в 18:12)   личное сообщение
 
 

Я не рассматривал этот вариант, так как в общем случае он не позволяет задать имя PDF программно, а именно это, как мне показалось, необходимо автору темы.

Для некоторых PDF принтеров можно задать имя выходного файла через реестр, но ...

2 Explorer - С возвращением!

  Ответить  
 
 автор: Explorer   (10.12.2007 в 00:12)   личное сообщение
 
 

для PDF-XChange можно в настройках указать Predefined Values для имени файла -

например дата год путь и т.п.

самое простое правило - результат сохраняется под именем того документа, который конвертируется/печатается (то что и спрашивает автор)

  Ответить  
 
 автор: Serge Gavrilov   (10.12.2007 в 09:57)   личное сообщение
 
 

Увы, насколько я понял, он не Freeware, рассчитывать, что клиент купит данный софт впридачу к моему нельзя. Поэтому лично для меня оптимальным вариантом является использование в моем продукте 3-го варианта (Печать в в файл с помощью любого PostScript принтера и последующая конвертация в PDF с помощью PostScript2PDF конвертера, например, бесплатного Ghostscript)
Этот вариант не требует никаких дополнитетельных затрат от клиента.
Но на случай, если клиент имеет Acrobat Professional, я включаю и его поддержку.
Для пользователей Office 2007 все проблемы с получением PDF вообще отпадают.

  Ответить  
 
 автор: Zhukov Boris   (09.12.2007 в 18:24)   личное сообщение
 
 

Спасибо за многовариантный ответ.

>Варианты
>1. Для Office 2007 у Microsoft есть бесплатный Save as PDF
>add-in.

заказчик пользует 2000-й

>2. Если установлен Acrobat Distiller, то можно
>воспользоваться его объектной моделью.
>3. Печать в в файл с помощью любого PostScript принтера и
>последующая конвертация в PDF с помощью PostScript2PDF
>конвертера, например, бесплатного Ghostscript

Такой вариант смотрел пока вприглядку (наткнулся на документ, в котором подробно и пошагово описан такой алгоритм)

>Что такое AdobePDFMakerX не знаю и вы не пояснили.

Т.к. я столкнулся с этой проблемой впервые, то просто подключил в ссылках все, что было связано с Adobe и PDF и стал просматривать методы. А когда встретил CreatePDF с именем исходного doc-файла, то, естественно захотел попробовать. Увы, с ходу не вышло. О там как вышло, см. ниже в моем же ответе на мое же письмо.

Борис

  Ответить  
 
 автор: Bellerofont   (09.12.2007 в 18:49)   личное сообщение
 
 

А заказчик использует 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, ""

  Ответить  
 
 автор: Zhukov Boris   (09.12.2007 в 18:14)   личное сообщение
 
 

я сделал так:

Подключил 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")

и это сработало.

Правда в чем неправильность в исходном сообщении - ясности так и нет.

  Ответить  
 
 автор: Bellerofont   (09.12.2007 в 18:37)   личное сообщение
 
 


и все. Правда в чем неправильность в исходном сообщении - ясности так и нет.

какую версию Acrobat вы используете?

  Ответить  
 
 автор: час   (09.12.2007 в 20:00)   личное сообщение
 
 

Нет, в ыходные дни тут тоже "громко"
Serge Gavrilov - с возвращением Toж.

  Ответить  
 
 автор: Zhukov Boris   (09.12.2007 в 21:35)   личное сообщение
 
 

Acrobat Prof 7, правда у заказчика кажется 6-й

  Ответить  
 
 автор: Zhukov Boris   (09.12.2007 в 23:43)   личное сообщение
 
 

И, кстати, любопытная штука:

У меня на двух компах дома по две операционки (XP). На каждой из машин под каждой из операционок стоит Acrobat Prof 7 (под первыми операционками везде инсталировался Typical, под вторыми операционками как Full). Версии подключаемой dll для полной и для типичной инсталяции вроде бы одинаковые. Однако там где Typical, программка не работает (хотя код возврата функции - успешный), а там где Full - это же приложение работает. Правда под вторыми операционками везде стоит Оффис-2000, а под первыми Оффис-2003 и Оффис-XP. Но тем не менее вот такой глючокс.

Борис

Да, забыл добавить, что под первыми операционками Acrobat обновлялся через Интеонет, а на вторых связь не налажена, поэтому стоит As Is.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList