使用itextsharp嵌入pdf文件时的隐藏文本

时间:2011-05-17 09:34:24

标签: c# itext

我正在学习itextsharp,我有一些问题吗? 当我将其嵌入pdf文件(水印)时如何隐藏文本? 如果我成功嵌入,如何从嵌入的pdf文件中获取文本? 抱歉我的英语能力最差。

我使用过“TEXT_RENDER_MODE_INVISIBLE”但文本在pdf文件中出现(可见)。 这是我的代码:

PdfReader reader = new PdfReader("test.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileStream("testStamperPdf.pdf", FileMode.Create));
stamper.ViewerPreferences = PdfWriter.PageLayoutTwoColumnLeft;
PdfContentByte under;
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);

int total = reader.NumberOfPages;

for (int i = 1; i <= total; i++)
{
    under = stamper.GetUnderContent(i);
    under.BeginText();
    under.SetFontAndSize(baseFont, 18);
    under.ShowTextAligned(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE, "Stackoverflow", 200, 400, 45);
    under.EndText();
}
stamper.Close();

我不明白!!!

1 个答案:

答案 0 :(得分:4)

under.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE);
under.showTextAligned(PdfContentByte.ALIGN_CENTER, someString, x, y, rot);

TEXT_RENDER_MODE_*常量仅适用于setTextRenderingMode()

showTextAligned的第一个参数定义了文本与传入点的对齐方式。

PS:任何人都可以使用标准文本工具复制隐形文本。这不是隐藏的。 ctrl + a也会选择它(连同页面上的任何和所有其他文本)。