使用ITextSharp在PDF表单字段中的文本上写入图像
当我试图在文本字段中写入图像时,图像被写在文本后面。它适用于普通文本和图像,但不适用于表单字段。我想把图像写在文字上,覆盖后面的文字使用ITextSharp在PDF表单字段中的文本上写入图像,itextsharp,Itextsharp,当我试图在文本字段中写入图像时,图像被写在文本后面。它适用于普通文本和图像,但不适用于表单字段。我想把图像写在文字上,覆盖后面的文字 void OldMethod() { string path = @"C:\Users\"; string OutLocation = path + "New.pdf"; string Old = path + "Old.pdf"; PdfReader reader1 = new PdfReader(Old); us
void OldMethod()
{
string path = @"C:\Users\";
string OutLocation = path + "New.pdf";
string Old = path + "Old.pdf";
PdfReader reader1 = new PdfReader(Old);
using (FileStream fs = new FileStream(OutLocation, FileMode.Create, FileAccess.Write, FileShare.None))
{
using (PdfStamper stamper = new PdfStamper(reader1, fs))
{
int pageCount1 = reader1.NumberOfPages;
//Create a new layer
for (int i = 1; i <= pageCount1; i++)
{
iTextSharp.text.Rectangle rect = reader1.GetPageSize(i);
PdfContentByte cb = stamper.GetOverContent(i);
AcroFields Fields = stamper.AcroFields;
cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 50);
Fields.SetField("Price", @"1323423345");
Fields.SetFieldProperty("Price", "TEXTCOLOR", BaseColor.RED, null);
string Img = path + "red_slash.jpg";
iTextSharp.text.Image jpeg = Image.GetInstance(System.Drawing.Image.FromFile(Img), ImageFormat.Jpeg);
float width = 100;
float height = 200;
jpeg.ScaleToFit(width, height);
jpeg.SetAbsolutePosition(210, 315);
cb.AddImage(jpeg);
}
}
}
}
void OldMethod()
{
字符串路径=@“C:\Users\”;
字符串OutLocation=path+“New.pdf”;
字符串Old=path+“Old.pdf”;
PdfReader reader1=新PdfReader(旧);
使用(FileStream fs=newfilestream(OutLocation,FileMode.Create,FileAccess.Write,FileShare.None))
{
使用(PdfStamper压模=新PdfStamper(读取器1,fs))
{
int pageCount1=读取器1.NumberOfPages;
//创建一个新层
对于(int i=1;i您到目前为止尝试了什么??尝试时-请说明您做了什么以及在哪些方面不起作用。问题确实不清楚。它至少应该有一个简短的代码示例,因为没有人知道文本字段的性质。它是一个缩写字段吗?在这种情况下,添加到内容流的所有内容都将是coveRedby it:注释总是覆盖页面的内容(PDF规范中就是这样定义的)。现在我们看到了我同意@BrunoLowagie的代码,这是100%试图将内容“放在”注释前面,这是不可能的。请参见mkl的答案,这里有一些选项:嗨,Chris Haas。谢谢你的回答。这对我帮助很大