我正在尝试在HTML上设置一些属性 - >使用EVOPDF生成PDF文件。
设置PdfDocumentInfo属性似乎非常简单。如文档所示:http://www.evopdf.com/help/azure-html-to-pdf/html/T_EvoPdf_HtmlToPdfClient_PdfDocumentInfo.htm
但是,Adobe Acrobat Reader在查看File-> Properties时显示空框。 Hex编辑器也找不到任何数据。
我尝试了从这里http://www.evopdf.com/download.aspx下载的“EvoHtmlToPdfDemo_VS2013”v6.4解决方案,但在整个解决方案中找不到PdfDocumentInfo。所以没有演示代码来显示应该如何设置文档属性。
请参阅下面的代码
var converter = new HtmlToPdfConverter();
converter.ConversionDelay = 0;
converter.ClipHtmlView = false;
var paperSize = PaperSizeToSizeF(pPaperSize);
var pdfPageOrientation = (pIsLandscape) ? PdfPageOrientation.Landscape : PdfPageOrientation.Portrait;
converter.PdfDocumentOptions.PdfPageOrientation = pdfPageOrientation;
converter.PdfDocumentOptions.PdfStandardSubset = PdfStandardSubset.Pdf_A_1b;
//IMPORTANT FOR COMPLIANCE
converter.PdfDocumentInfo.AuthorName = "Mike de Klerk";
converter.PdfDocumentInfo.Title = "PDF/A-1b Test";
converter.PdfDocumentInfo.Subject = "Testing generation of PDF/A-1b compliant file by EVOPDF library.";
converter.PdfDocumentInfo.Keywords = "HTML, PDF, Converter, PDF/A-1b. compliance";
converter.PdfDocumentInfo.CreatedDate = DateTime.Now;
修改:
使用EvoPdf.Document
对象时,我可以完成它。但我无法使用EvoPdf.HtmlToPdfConverter
对象完成它。我更喜欢使用后一个对象,因为大多数文档都引用了HtmlToPdfConverter
。有关EvoPdf.Document
对象的用法,请参阅下面的代码。
// Create the PDF document where to add the HTML documents
var pdfDocument = new Document();
// Set license key received after purchase to use the converter in licensed mode
// Leave it not set to use the converter in demo mode
pdfDocument.LicenseKey = LicenseKey;
pdfDocument.DocumentInformation.Author = "Mike de Klerk";
pdfDocument.DocumentInformation.Title = "PDF/A-1b Test";
pdfDocument.DocumentInformation.Subject = "Testing generation of PDF/A-1b compliant file by EVOPDF library.";
pdfDocument.DocumentInformation.Keywords = "HTML, PDF, Converter, PDF/A-1b. compliance";
pdfDocument.DocumentInformation.CreationDate = DateTime.Now;
编辑2:
有一个HtmlToPdfConverter.PdfDocumentOptions.DocumentObject.DocumentInformation
个对象。但转换前DocumentObject
为空。文档说
转换后确实存在对转换期间转换器初始化的内部Document对象的引用
DocumentObject
,我可以确认转换后未设置DocumentInformation
属性。
编辑3:
在转换前/后转换事件中设置DocumentInformation
似乎无法正常工作。
converter.PrepareRenderPdfPageEvent += (eventParams) =>
{
converter.PdfDocumentOptions.DocumentObject.DocumentInformation.Author = "Mike de Klerk";
converter.PdfDocumentOptions.DocumentObject.DocumentInformation.Title = "PDF/A-1b Test";
converter.PdfDocumentOptions.DocumentObject.DocumentInformation.Subject = "Testing generation of PDF/A-1b compliant file by EVOPDF library.";
converter.PdfDocumentOptions.DocumentObject.DocumentInformation.Keywords = "HTML, PDF, Converter, PDF/A-1b. compliance";
converter.PdfDocumentOptions.DocumentObject.DocumentInformation.CreationDate = DateTime.Now;
};
converter.AfterRenderPdfPageEvent += (eventParams) =>
{
eventParams.Page.Document.DocumentInformation.Author = "Mike de Klerk";
eventParams.Page.Document.DocumentInformation.Title = "PDF/A-1b Test";
eventParams.Page.Document.DocumentInformation.Subject = "Testing generation of PDF/A-1b compliant file by EVOPDF library.";
eventParams.Page.Document.DocumentInformation.Keywords = "HTML, PDF, Converter, PDF/A-1b. compliance";
eventParams.Page.Document.DocumentInformation.CreationDate = DateTime.Now;
};
converter.ConvertHtmlFileToStream(pContentHtmlFile, pOutputStream);
编辑4:
首先转换为Document
对象时,甚至不工作,然后设置DocumentInformation
,并将Document
写入输出流。我觉得我在这里遇到了可能的解决方法......
var documentObject = converter.ConvertHtmlFileToPdfDocumentObject(pContentHtmlFile);
documentObject.DocumentInformation.Author = "Mike de Klerk";
documentObject.DocumentInformation.Title = "PDF/A-1b Test";
documentObject.DocumentInformation.Subject = "Testing generation of PDF/A-1b compliant file by EVOPDF library.";
documentObject.DocumentInformation.Keywords = "HTML, PDF, Converter, PDF/A-1b. compliance";
documentObject.DocumentInformation.CreationDate = DateTime.Now;
documentObject.Save(pOutputStream);
编辑5:
我假设当一个人documentObject.DocumentInformation.Author = "Value";
,并且它有一个setter时,它实际上是设置的。但事实并非如此。因此,在我尝试设置这些值的位置并不重要。他们只是没有被记住。这一定是个bug。为什么还有EvoPdf.DocumentInfo
和EvoPdf.PdfDocumentInfo
类?一个使用AuthorName
,另一个使用Author
。还有更多这些差异。
答案 0 :(得分:0)
您无法将EVO HTML生成的PDF文档的制作者更改为PDF Converter。这个属性是只读的。
答案 1 :(得分:0)
问题是您正在创建PDF / A文档。此标准不允许设置作者姓名。