代码之家  ›  专栏  ›  技术社区  ›  Ahmad

将图像添加到现有PDF不会替换整个PDF

  •  0
  • Ahmad  · 技术社区  · 7 年前

    我有以下将图像添加到PDF的代码:

         string SRC = 
                @"C:/Saved/Test.pdf";
            string DEST = @"C:/Saved/TestComplete.pdf";
            string IMG = @"C:Saved//TestImage.JPG";
    
    
        Document doc = new Document();
    
    try
    {
                iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(SRC, FileMode.Create));
    doc.Open();
    
    //doc.Add(new Paragraph("GIF"));
    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(IMG);
        image.ScalePercent(200f);
    doc.Add(image);
    }
    catch (Exception ex)
    {
                //Log error; 
                string error = ex.Message;
    }
    finally
    {
    doc.Close();
    }
    }
    

    这里的问题是,不仅仅是添加图像,而是用该图像替换整个PDF,有没有办法在PDF中添加图像,只有签名图像,只需将其添加到页面 有什么想法吗? 此外,我已将Itextsharp升级到IText7,但我无法找到将图像添加到现有PDF的方法,只有水印。如果你知道一个链接或文章的例子,请让我知道。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Simple Code    7 年前

    如果要使用旧方法,请使用以下方法:

       string SRC = 
                @"C:/Saved/Test.pdf";
            string DEST = @"C:/Saved/TestComplete.pdf";
            string IMG = @"C:Saved//TestImage.JPG";
     iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(SRC);
            iTextSharp.text.Rectangle Size = reader.GetPageSizeWithRotation(1);
            Document document = new Document(Size);
            FileStream fs = new FileStream(DEST, FileMode.Create, FileAccess.Write);
            iTextSharp.text.pdf.PdfWriter weiter = iTextSharp.text.pdf.PdfWriter.GetInstance(document, fs);
            document.Open();
            PdfContentByte cb = weiter.DirectContent;
            PdfImportedPage page = weiter.GetImportedPage(reader, 1);
            cb.AddTemplate(page, 0, 0);
            iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(IMG);
            document.Add(jpg);
            document.Close();
            fs.Close();
            weiter.Close();
            reader.Close();
    

    有关使用iText7方法的问题,请参阅此链接 IText7 JumpStart

    要准确地找到处理图像的示例,请参考此 Chapter7

    我还建议你阅读所有章节