水印无法正确打印

时间:2016-07-13 06:49:06

标签: pdf printing itext

我使用iTextSharp为现有PDF文件添加水印。在屏幕上查看这些文件时,水印和PDF正确显示。但是,在某些打印机上打印时(3个中有2个已经过客户端测试),水印似乎会干扰其上方的内容,导致打印时出现格式错误。

PDF是CAD图纸(即电路图纸等)

用于应用水印的代码如下。通过调用PdfContentByte

中的GetOverContent来检索PdfStamper
private void AddWaterMark(PdfContentByte dc, string text, BaseFont font, float fontSize, float angle, BaseColor color, Rectangle realPageSize, Rectangle rect = null)
{
    var gstate = new PdfGState { FillOpacity = 0.1f, StrokeOpacity = 0.3f };
    dc.SaveState();
    dc.SetGState(gstate);
    dc.SetColorFill(color);

    dc.BeginText();
    dc.SetFontAndSize(font, fontSize);
    var ps = rect ?? realPageSize; /*dc.PdfDocument.PageSize is not always correct*/
    var x = (ps.Right + ps.Left) / 2;
    var y = (ps.Bottom + ps.Top) / 2;
    dc.ShowTextAligned(Element.ALIGN_CENTER, text, x, y, angle);
    dc.EndText();
    dc.RestoreState();
}

以下是屏幕上的示例:

enter image description here

以下是在某些打印机上打印时的样子: enter image description here

任何人都可以告诉我为什么某些打印机无法正确打印PDF,以及我是否可以更改应用水印以避免此问题的方式?

0 个答案:

没有答案