iText7 PDF可以正确呈现,但在Adobe Reader中打印不正确

丹尼尔·汉森

我的任务是在许多现有的PDF中添加水印,并且在C#中为此使用iText7。在此图片中可以看到结果(使用空白pdf)

屏幕上的PDF

它在任何地方都能呈现出色效果,并且可以从Chrome和Edge完美打印。但是,从Adobe Acrobat Reader打印时,会发生以下情况:

在Adobe Reader中打印预览

任何人都比我更了解PDF,谁可以帮助解决此问题?我正在使用iText的7.1.13版本。

可在此处获得测试pdf:

https://potanteststorage.blob.core.windows.net/pdf/Test.pdf

C#代码:

public static void AddProductionWatermarks(string sourceFile, string destinationPath)
{
    float watermarkTrimmingRectangleWidth = 75;
    float watermarkTrimmingRectangleHeight = 250;

    //Custom text
    float formWidth = 75;
    float formHeight = 250;
    float formXOffset = 0;
    float formYOffset = 0;

    float xTranslation = 50;
    float yTranslation = 0;

    double rotationInRads = Math.PI / 2;

    PdfFont font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN);
    float fontSize = 12;

    PdfDocument pdfDoc = new PdfDocument(new PdfReader(sourceFile), new PdfWriter(destinationPath));
    var numberOfPages = pdfDoc.GetNumberOfPages();
    PdfPage page = null;

    for (var i = 1; i <= numberOfPages; i++)
    {
        page = pdfDoc.GetPage(i);
        Rectangle ps = page.GetPageSize();

        //PRODUCTION watermark -------------------------------------------------------
        float prodBottomLeftX = -20;
        float prodBottomLeftY = ps.GetHeight() / 2;

        Rectangle prodWatermarkTrimmingRectangle = new Rectangle(prodBottomLeftX, prodBottomLeftY, watermarkTrimmingRectangleWidth, watermarkTrimmingRectangleHeight);
        PdfWatermarkAnnotation prodWatermark = new PdfWatermarkAnnotation(prodWatermarkTrimmingRectangle);

        AffineTransform transform2 = new AffineTransform();
        transform2.Translate(xTranslation, yTranslation);
        transform2.Rotate(rotationInRads);

        PdfFixedPrint fixedPrint2 = new PdfFixedPrint();
        prodWatermark.SetFixedPrint(fixedPrint2);

        PdfFormXObject form2 = new PdfFormXObject(formRectangle);
        PdfCanvas canvas2 = new PdfCanvas(form2, pdfDoc);

        transform2.GetMatrix(transformValues);
        canvas2.SaveState()
            .BeginText().SetColor(new DeviceRgb(255, 36, 0), true)
            .SetTextMatrix(transformValues[0], transformValues[1], transformValues[2], transformValues[3], transformValues[4], transformValues[5])
            .SetFontAndSize(font, fontSize)
            .ShowText("PRODUCTION")
            .EndText()
            .RestoreState();

        canvas2.Release();

        prodWatermark.SetAppearance(PdfName.N, new PdfAnnotationAppearance(form2.GetPdfObject()));
        prodWatermark.SetFlags(PdfAnnotation.PRINT);
        page.AddAnnotation(prodWatermark);
    }

    page?.Flush();
    pdfDoc.Close();
}
mkl

在注释中使用FixedPrint词典:

PdfFixedPrint fixedPrint2 = new PdfFixedPrint();
prodWatermark.SetFixedPrint(fixedPrint2);

水印注释的此附加条目指定在打印过程中应如何相对于目标介质的尺寸绘制此注释。因此,您要求在打印过程中对水印进行特殊处理

因此,如果您确实希望在打印期间进行特殊处理(仅不执行当前处理),则只需PdfFixedPrint相应地设置属性即可。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UISearchDisplayController的searchResultsTableView的ContentSize不正确。iOS 7中的错误?

来自分类Dev

iOS 7的UIToolbar中的UIBarButtonItems的垂直位置不正确

来自分类Dev

从perl打印json不正确

来自分类Dev

存储在结构中的字符串打印不正确

来自分类Dev

iOS7中的UITabBar徽章位置不正确

来自分类Dev

Bash打印不正确的文件行数

来自分类Dev

java打印:纸张尺寸不正确

来自分类Dev

在iText7中的jar中提供字体

来自分类Dev

IText7和C#中缺少GetPageN方法

来自分类Dev

通过后期请求接受Pdf并传递给C#.net Core中的itext7 pdfreader

来自分类Dev

如何在itext7 html到pdf转换器的converterproperties中设置baseuri

来自分类Dev

如何使用itext7从标记的pdf中的结构元素中提取文本

来自分类Dev

我如何使用itext7从存储在Blob存储中的pdf中提取文本?

来自分类Dev

用iText7填充pdf检查字段

来自分类Dev

什么可以替代itext7中的短语?

来自分类Dev

CKEditor在Drupal 7中缺少/不正确的basePath

来自分类Dev

负值打印不正确

来自分类Dev

在字符串中打印不正确的字符数

来自分类Dev

iText PDFDocument页面大小不正确

来自分类Dev

在IText7中创建PdfFont

来自分类Dev

在pdf文档itext7中获取所有acrosfields的可用信息

来自分类Dev

在iText7中,是否有类似iText5的calculateHeights方法的方法?

来自分类Dev

如何在itext7中获取widthPoint

来自分类Dev

itext7 中可以避免添加 xmp:ModifyDate 吗?

来自分类Dev

如何使用带有 C# 的 itext7 将 u3d 添加到现有的 pdf 中

来自分类Dev

for循环打印我在div中不正确

来自分类Dev

Itext7 pdf.version.not.valid

来自分类Dev

LayoutResult在Itext7中多一页

来自分类Dev

如何使用 IText7 和 C# 在现有 PDF 中的内部链接下划线?

Related 相关文章

热门标签

归档