PDFCreator будет печатать TIFF вместо PDF - PullRequest
0 голосов
/ 10 августа 2010

Я пытаюсь преобразовать документ RTF в PDF.У меня есть этот код:

// TestCOMPDF.cpp : Defines the entry point for the console application.
//

#include <windows.h>
#include <tchar.h>
#include <objbase.h>
#include <atlbase.h>

#import "MSVBVM60.DLL" rename ( "EOF", "VBEOF" ), rename ( "RGB", "VBRGB" ) //if you don't use this you will be in BIG trouble
#import "PDFCreator.exe" 

int _tmain(int argc, _TCHAR* argv[])
{

 CoInitialize(NULL);
 {

  CComPtr<PDFCreator::_clsPDFCreator> pdfObject;
  HRESULT hr = pdfObject.CoCreateInstance(L"PDFCreator.clsPDFCreator");
  pdfObject->cStart("/NoProcessingAtStartup", 1);

  PDFCreator::_clsPDFCreatorOptionsPtr opt = pdfObject->GetcOptions();

  opt->UseAutosave = 1;
  opt->UseAutosaveDirectory = 1;
  opt->AutosaveDirectory = "c:\\temp\\";
  opt->AutosaveFormat = 0; // for PDF
  opt->AutosaveFilename = "gigi13";
  pdfObject->PutRefcOptions(opt);
  pdfObject->cClearCache();
  _bstr_t DefaultPrinter = pdfObject->cDefaultPrinter;
  pdfObject->cDefaultPrinter = "PDFCreator";
  hr = pdfObject->cPrintFile("c:\\temp\\RTF\\garage.rtf");

  pdfObject->cPrinterStop = false;

  while(true)
  {
   printf("sleep\n");
   Sleep(1000);
   if(pdfObject->cCountOfPrintjobs == 0)
    break;
  }

  printf("done\n");

  pdfObject->cPrinterStop = true;

  pdfObject->cDefaultPrinter = DefaultPrinter;
 }

 CoUninitialize();

 return 0;
}

При запуске этого примера кода вместо непосредственного создания PDF-файла мне предлагается диалоговое окно «Сохранить», предлагающее вариант вывода только с возможностью выбора файла TIFFне хотел).Может кто-нибудь указать мне правильное направление или предложить какие-то предложения?

Спасибо,

Юлиан

1 Ответ

3 голосов
/ 13 августа 2010

Это только предположение ... У меня была похожая проблема - не при использовании PDFCreator программно (это выходит за рамки моих возможностей), а при использовании его в качестве стандартного принтера для печати в PDF.

Сначала я использовал его в течение нескольких дней без каких-либо проблем.Не я его установил, а мой партнер.Как я сказал ... он просто работал и создавал прекрасные PDF-файлы.

Затем кто-то на нашем домашнем компьютере (мы его используем 3 разных человека), должно быть, изменил настройку (возможно, случайно), чтобы сделатьон выводит TIFF вместо PDF.Для меня мой принтер по умолчанию был назван «PDFcreator», и меня это смутило, почему он вдруг захотел создать файлы TIFF.

Тем временем я много ткнул в пользовательский интерфейс всех его настроек, инаучился знать, где искать, если что-то пойдет не так.

Самая новая версия на левой панели древовидного списка содержит элемент с именем «Сохранить».Если вы выберете его, вы можете настроить соглашения по умолчанию для имен файлов, а также «Стандартный формат сохранения ».В моем случае в выпадающем списке вместо «PDF» был выбран «TIFF».

Глядя на свой код, вы как-то звоните PDFCreator.exe (я не понимаю деталей, но вижуэта строка в вашем коде).Моя ставка пошла бы на это: так или иначе, учетная запись пользователя, под которой ваш код использует для запуска, имеет Стандартный формат сохранения , установленный в TIFF.Возможно, вы просматриваете настройки принтера (в моей Windows XP я просто набираю control printers и щелкаю правой кнопкой мыши имя принтера PDFCreator, чтобы выбрать Свойства ... ), и не нахожу ничего подозрительного.

Однако PDFcreator сохраняет свои настройки для каждого пользователя в отдельном месте, вероятно, в %userprofile%\local settings\temp\pdfcreator\... или даже в реестре ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...