我正在学习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();
我不明白!!!
答案 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也会选择它(连同页面上的任何和所有其他文本)。