このサイトで 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 引数は、「必要な画像の種類を決定するために使用されるダミー ファイル名」と説明されています。 PNG、.BMP、.JP2、.EMF、.PS、.EPS」
その後、後者のバージョンのコードが実行された後、出力が得られますが、それは PDF ではなく、TIF、JPG、またはそのリストから選択したものです。「mom.pdf」と言うと、エラーがスローされます。これは、XRendering の Save() メソッドの説明を開始する方法が「このメソッドを使用して PDF をレンダリングする」であるため、ひどいものです。