PDFCreator将打印TIFF而不是PDF

问题描述:

我试图将RTF文档转换为PDF。我有这样的代码:PDFCreator将打印TIFF而不是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文件的选项(这是不通缉)。有人能指引我走向正确的方向还是提供一些建议?

感谢,

尤利安

+0

它的PDFCreator库是这样吗?有窗户上几 – 2010-08-10 15:15:01

+0

的PDFCreator:http://sourceforge.net/projects/pdfcreator/ – INS 2010-08-11 06:34:59

+0

好,到底它似乎是PDFCreator的莫名其妙有点“傻”。我们通过运行一个外部脚本来做我们想做的事情 - 尽管程序的C++部分完成了同样的事情。 – INS 2010-09-02 18:37:09

这只是一种猜测。我也有类似的问题 - 不使用时的PDFCreator编程(这是超出了我的能力),但使用它作为我的标准时打印机打印到PDF文件。

首先我用了几天,没有任何问题。不是我安装了它,而是我的合作伙伴。正如我所说...它只是工作,并创建漂亮的PDF文件。

然后,不知何故,有人我们的家用电脑上(我们使用它3种不同的人)必须改变了设置(可能inadvertedly),使其输出TIFF,而不是PDF文件。对我而言,我的默认打印机被命名为“PDFcreator”,它让我困惑不已,为什么它突然想要创建TIFF。

同时我戳了很多在其所有设置的用户界面,并学会了知道去哪里找,如果出现错误。

在其左侧树状面板中的最新版本列出了一个名为“保存”的项目。如果选择它,则可以配置默认文件名约定以及“标准保存格式”。在我的情况下,在下拉列表视图中选择了“TIFF”而不是“PDF”。看看你的代码,你不知何故调用PDFCreator.exe(我不明白细节,但我可以在你的代码中看到这个字符串)。我敢打赌,不知何故,您的代码用于运行的用户帐户已将其标准保存格式设置为TIFF。这可能是因为你看看打印机设置(在我的Windows XP,我只需键入control printers,并右击该PDFCreator的打印机名称选择属性...),并没有发现任何可疑的。

然而,存储的PDFCreator它为每个用户设置到不同的位置,大概在%userprofile%\local settings\temp\pdfcreator\...,甚至在注册表中......

+0

感谢您的提示,我会研究它。 – INS 2010-08-16 06:55:38

+0

我会将此作为答案,但不幸的是,它不能解决我的问题。再次感谢您的尝试(请参阅我对该问题的评论)。 – INS 2010-09-02 18:39:13