C# iText7 PDF在Adobe Reader中正确呈现,但打印不正确

C# iText7 PDF在Adobe Reader中正确呈现,但打印不正确,c#,pdf,itext7,watermark,C#,Pdf,Itext7,Watermark,我有一项任务,就是在很多现有的PDF中添加水印,我在C#中使用iText7。结果可在此图片中看到(使用空白pdf) 无论在何处,它都能呈现出精美的效果,并能从铬和边缘完美打印。但是,从Adobe Acrobat Reader打印时,会发生以下情况: 有谁比我更了解PDF,谁能帮助解决这个问题?我使用的是iText的7.1.13版 测试pdf可在以下位置获得: C#代码: 公共静态void AddProductionWatermarks(字符串源文件,字符串目标路径) { 浮动水印修剪矩形宽

我有一项任务,就是在很多现有的PDF中添加水印,我在C#中使用iText7。结果可在此图片中看到(使用空白pdf)

无论在何处,它都能呈现出精美的效果,并能从铬和边缘完美打印。但是,从Adobe Acrobat Reader打印时,会发生以下情况:

有谁比我更了解PDF,谁能帮助解决这个问题?我使用的是iText的7.1.13版

测试pdf可在以下位置获得:

C#代码:

公共静态void AddProductionWatermarks(字符串源文件,字符串目标路径)
{
浮动水印修剪矩形宽度=75;
浮动水印修剪矩形高度=250;
//自定义文本
浮动宽度=75;
浮模高度=250;
float formXOffset=0;
float formYOffset=0;
浮点翻译=50;
浮点翻译=0;
双旋转Rads=Math.PI/2;
PdfFont font=PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN);
浮点数=12;
PdfDocument pdfDoc=新的PdfDocument(新的PdfReader(源文件)、新的PdfWriter(目标路径));
var numberOfPages=pdfDoc.GetNumberOfPages();
PdfPage page=null;

对于(var i=1;i,您在注释中使用FixedPrint词典:

PdfFixedPrint fixedPrint2 = new PdfFixedPrint();
prodWatermark.SetFixedPrint(fixedPrint2);
水印注释的此附加条目指定了在打印过程中如何相对于目标介质的尺寸绘制此注释。因此,您要求在打印过程中对水印进行特殊处理

因此,如果您确实希望在打印过程中进行特殊处理(而不是当前处理),只需相应地设置
PdfFixedPrint
属性即可


如果在打印过程中不需要任何特殊处理,请根本不要设置
PdfFixedPrint
对象。

在注释中使用FixedPrint词典:

PdfFixedPrint fixedPrint2 = new PdfFixedPrint();
prodWatermark.SetFixedPrint(fixedPrint2);
水印注释的此附加条目指定了在打印过程中如何相对于目标介质的尺寸绘制此注释。因此,您要求在打印过程中对水印进行特殊处理

因此,如果您确实希望在打印过程中进行特殊处理(而不是当前处理),只需相应地设置
PdfFixedPrint
属性即可


如果您不想在打印过程中进行任何特殊处理,请根本不要设置
PdfFixedPrint
对象。

您可能需要共享实际的PDF文件,而不是图片(这对描述问题非常有用)。最好的办法可能是将PDF文件放在文件共享服务(例如DropBox)上然后链接到这里,你可以编辑你的答案来添加URL。Thx KenS,现在添加。你在注释中使用FixedPrint字典。因此,你要求在打印过程中对水印进行特殊处理。mkl,你太棒了!我应该读更多关于FixedPrint的用法。我认为这与水印如何打印在PDF上有关页面。只需删除这两行即可修复。Thx!太好了。我会给出一个实际的答案。您可能需要共享实际的PDF文件,而不是图片(这对描述问题非常有用)。最好的办法可能是将PDF文件放在文件共享服务(如DropBox)上然后链接到这里,你可以编辑你的答案来添加URL。Thx KenS,现在添加。你在注释中使用FixedPrint字典。因此,你要求在打印过程中对水印进行特殊处理。mkl,你太棒了!我应该读更多关于FixedPrint的用法。我认为这与水印如何打印在PDF上有关页面。只需删除这两行即可修复。谢谢!太好了。我会给出一个实际的答案。