dw_1.print(false) созданный PDF-файл всегда пуст
ll_printed = dw_1.print(FALSE)
IF ll_printed = 1 AND FileLength64(gs_TmpFile) > 100000 THEN
ls_run =gs_GhostScript_Path + "gswin32c -q -sDEVICE=pdfwrite
-sOutputFile=" + gs_TmpFile + ".pdf " + " -dBATCH -dNOPAGEPROMPT -dNOPROMPT-dQUIET -dNOPAUSE" +' ' + gs_TmpFile
END IF
Я получил этот скрипт, где я проверяю длину файла, я всегда генерирую PS с 11kb. Если я продолжу создавать PDF. это создаст пустой PDF. Иногда он действительно печатает правильную информацию, иногда ее пустым.
1 ответ
Что ж, вы, похоже, тестируете размер gs_TmpFile, чтобы увидеть, превышает ли он более 100000 байт, и все же вы говорите, что всегда генерируете программу PostScript размером 11 КБ (11264 байт), поэтому я не вижу, как вам удается вызывать Ghostscript в тот случай.
Я предполагаю, что ваш временный файл все еще не заполнен или не содержит того, что вы думаете, он делает.
Конечно, вы установили -dQUIET, подавляя сообщения, и не удосужились предоставить (или даже перехватить) стенограмму Ghostscript. Скорее всего, там есть что-то, что могло бы дать вам подсказку, но так как вы не представили это, никто не может сказать.
Вы должны сделать значительно больше отладки этого самостоятельно. Вам следует захватить программу PostScript во время вызова Ghostscript (скопировать ее в новый файл), а также захватить вывод Ghostscript. Затем изучите созданный PDF-файл, пока не найдете условие ошибки.
Когда вы столкнетесь с состоянием ошибки, вы сможете сравнить программу PostScript, отправленную в Ghostscript, с рабочей версией, и у вас будет любая информация, о которой Ghostscript хотел, чтобы вы знали, что может помочь вам в устранении проблемы.
Здесь действительно недостаточно информации, чтобы предложить больше помощи.