:: Visual Foxpro, Foxpro for DOS
REPORT FORM - пакетная теневая печать в PDF-файлы
awkozlov
Автор

Сообщений: 3
Дата регистрации: 17.07.2021
Имею необходимость сохранять файлы из REPORT FORM в PDF-формате для последующей рассылки на Email пользователей (в целях экономии бумаги).
Прыжки с бубном привели к следующему:

Нашёл программу, которая управляет опциями PDF-принтеров через создание объекта.
Т.е. отправляем печать в эту программу (которая тоже "принтер"), и эта программа через другой PDF-принтер производит печать в соответствии с API, которое было в неё выставлено.
Получился такой код:
SET PRINTER TO NAME "Bullzip PDF Printer" && www.biopdf.com
lcPdf = CreateObject("Bullzip.PDFPrinterSettings") && www.bullzip.com
*Hide the Printing Dialogs www.biopdf.com
lcPdf.SetValue("Output","C:\test.pdf")
lcPdf.SetValue("ShowSettings","never")
lcPdf.SetValue("ShowSaveAS","never")
lcPdf.SetValue("ShowProgress","no")
lcPdf.SetValue("ShowProgressFinished","no")
lcPdf.SetValue("ShowPDF","no")
lcPdf.SetValue("ConfirmOverwrite","no")
lcPdf.SetValue("ConfirmNewFolder","no")
*Other API settings www.biopdf.com
lcPdf.SetValue("PrintToPrinter","no")
lcPdf.SetValue("PrinterName","Foxit PhantomPDF Printer")
lcPdf.SetValue("PrinterSelection","Specific")
lcPdf.WriteSettings(.t.)
? SET("Printer",2)
? "Output=",lcPdf.GetValue("Output")
? "ShowSettings=",lcPdf.GetValue("ShowSettings")
? "ShowSaveAS=",lcPdf.GetValue("ShowSaveAS")
? "ShowProgress=",lcPdf.GetValue("ShowProgress")
? "ShowProgressFinished=",lcPdf.GetValue("ShowProgressFinished")
? "ShowPDF=",lcPdf.GetValue("ShowPDF")
? "ConfirmOverwrite=",lcPdf.GetValue("ConfirmOverwrite")
? "ConfirmNewFolder=",lcPdf.GetValue("ConfirmNewFolder")
? "PrintToPrinter=",lcPdf.GetValue("PrintToPrinter")
? "PrinterName=",lcPdf.GetValue("PrinterName")
? "PrinterSelection=",lcPdf.GetValue("PrinterSelection")
REPORT FORM "rep01.frx" NOCONSOLE TO PRINTER
SET PRINTER TO DEFAULT

Но что-то это не работает - REPORT настырно печатает в "Foxit PhantomPDF Printer", хотя из других программ всё норм.

Полагаю, что в REPORT где-то жёстко прописался "Foxit PhantomPDF Printer", что типа печатать только на нем. Где это там в репорте находится?


Как решали проблему пакетной теневой печати в PDF-файлы?

Может есть иные подходы?



Исправлено 12 раз(а). Последнее : awkozlov, 18.07.21 10:58
Ratings: 0 negative/0 positive
Re: REPORT FORM - пакетная теневая печать в PDF-файлы
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
1. Это?

[attachment 35580 Sav.png]


2.

Цитата:
Как решали проблему пакетной теневой печати в PDF-файлы?
Не лечится
forum.foxclub.ru


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 2 раз(а). Последнее : PaulWist, 18.07.21 10:38
Ratings: 0 negative/0 positive
Re: REPORT FORM - пакетная теневая печать в PDF-файлы
awkozlov
Автор

Сообщений: 3
Дата регистрации: 17.07.2021

1.Да!
2.Решено. Всё работает. Ответ в первом сообщении.



Подставляем в lcPdf.SetValue("Output","C:\test.pdf") любые имена с любыми папками и тихо генерим кучу pdf-файлов.



Исправлено 1 раз(а). Последнее : awkozlov, 18.07.21 11:27
Ratings: 0 negative/1 positive
Re: REPORT FORM - пакетная теневая печать в PDF-файлы
Konstantin_Pavlovich

Сообщений: 143
Откуда: Москва
Дата регистрации: 21.11.2007
А я просто переназначал принтер на Bullzip PDF Printer (SET PRINTER TO NAME "Bullzip PDF Printer"), затем запускал Report Form, создавался PDF файл и переназначал принтер обратно. Или прямо в настройках отчёта указывал тип принтера Bullzip PDF Printer.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 30 (Гостей: 30)

© 2000-2024 Fox Club 
Яндекс.Метрика