我在这个网站上看到了一些 ABCpdf 问题,但还没有看到这个。我正在开发一个需要带有一些相当特定选项的 PDF 输出的项目。ABCpdf 似乎能够通过他们的 API 提供这个,但文档令人困惑和/或不完整。
using (var xpsStream = (MemoryStream)xps.Write(doc))
{
xpsStream.Position = 0;
pdfDoc.Clear();
pdfDoc.Read(xpsStream, new XReadOptions
{
FileExtension = "xps"
});
pdfDoc.Rendering.DotsPerInch = 72;
pdfDoc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk;
pdfDoc.Rendering.IccCmyk = "device";
pdfDoc.Save(stream);
}
这会呈现一个没有设置呈现属性的 PDF。文档确实指出,为了保存渲染属性,必须通过 XRendering 类中的 Save() 方法保存它们。所以我必须做类似的事情:
pdfDoc.Rendering.DotsPerInch = 72;
pdfDoc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk;
pdfDoc.Rendering.IccCmyk = "device";
pdfDoc.Rendering.Save("blah", stream); // they want a "name" argument
他们文档中的 name 参数被描述为“用于确定所需图像类型的虚拟文件名。 ”后来他们说“可以使用的文件扩展名是 .TIF、.TIFF、.JPG、.GIF、. PNG、.BMP、.JP2、.EMF、.PS 和 .EPS。 "
然后在后一个版本的代码运行后,我确实得到了输出,但它不是 PDF,它是 TIF、JPG 或我从该列表中选择的任何内容。如果我说“mom.pdf”,则会引发错误。这很糟糕,因为他们在 XRendering 中对 Save() 方法的描述是“使用此方法呈现 PDF ” 。