【发布时间】:2014-06-27 05:01:01
【问题描述】:
我正在使用 iTextSharp 将数据填充到在 OpenOffice 中创建的 PDF 模板。它填充得很好,我得到了正确的 PDF,Watermark 没有正确显示。
下面是我的代码:
public void addWaterMark(PdfStamper stamper, int pageNumber, Watermark watermark)
{
List<WatermarkField> watermarkFields = watermark.getWatermarkFieldAsReference();
for (WatermarkField watermarkField : watermarkFields) {
// setting font and font size for the watermark text
Font FONT = new Font(FontFamily.HELVETICA, watermarkField.getFontSize(), Font.BOLD, new GrayColor(0.75f));
// setting alignment for the watermark
ColumnText.showTextAligned(stamper.getUnderContent(pageNumber), Element.ALIGN_CENTER, new Phrase(watermarkField.getText(), FONT), watermarkField.getXDirection(), watermarkField.getYDirection(), watermarkField.getRotation());
}
}
当我放入背景文本框时,会隐藏水印。
当我放入前景水印时隐藏了文本。
两条屏幕短裤都附在下面。
请给我建议解决方案。 谢谢。
【问题讨论】:
-
你期待什么?显然,前景中的某些东西被覆盖,而背景中的某些东西被覆盖。话虽如此,您可以通过使用大纲书写或透明度来减少前景中的书写量。
-
This answer 在其他内容中包含使用仅大纲的过度内容标记的代码。它使用 iText/Java,但应该很容易翻译成 iTextSharp/C#。
-
mkl 是正确的
getUnderContent()是罪魁祸首。如果您不希望现有内容覆盖水印,则需要getOverContent()。当然:如果您不想用水印覆盖现有内容,则需要使其透明,如 mkl 对stackoverflow.com/questions/20351916/…的回答中所述@ -
@mkl 我的问题是当我使用
getOverContent()时,标签文本被覆盖(在模板中)。 Strock 没问题,但客户不接受。 -
客户不接受 - 那么他会接受什么?透明度?
标签: java pdf itextsharp itext