Warm tip: This article is reproduced from serverfault.com, please click

其他-如何使用Itext库将PDF文件从A4大小拆分为字母大小(A4大小的一半)C#

(其他 - How to split PDF files from A4 size to letter size (half of A4 size) C# with Itext library)

发布于 2020-11-29 02:38:01

我想在c#中将pdf文件从A4大小拆分为字母大小,现在我用此代码拆分它,但是它保持相同的大小

        string inPDF = Application.StartupPath + "\\log\\input.pdf";
        string outPDF = Application.StartupPath + "\\log\\output.pdf";\
        PdfStream pdfStream = new PdfStream(inPDF, FileMode.Open);
        PdfStream newPdfStream = new PdfStream(outPDF, FileMode.Create);
        PdfReader reader = new PdfReader(pdfStream);
        PageSize = reader.getPageSize(1);
        Document document = new Document(PageSize);
        PdfWriter writer = PdfWriter.getInstance(document, newPdfStream);
        document.open();
        PdfContentByte content = writer.Directcontent();
        PdfImportPage page = writer.getImportPage(reader, 1);
        content.addTemplate(page , 0 , 0);
        content.Fill();
        document.setPageSize(PageSize);
        document.Close();
        reader.Close();
  • 这是原始的pdf文件 在此处输入图片说明

  • 这是预期的输出Pdf文件 在此处输入图片说明

如何将pdf文件拆分为A4大小一半的小尺寸??? 感谢你阅读我的帖子!

Questioner
Bình Chu
Viewed
11
Bình Chu 2020-11-30 10:39:40

我用以下代码修复了它:

       FileStream newPdfStream = new FileStream(destineFile, FileMode.Create, FileAccess.ReadWrite);
        PdfReader reader = new PdfReader(sourceFile);
        iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(
            reader.GetPageSize(1).Width,
            (reader.GetPageSize(1).Height - reader.GetPageSize(1).Height * 2 / 3));
        Document document = new Document(pageSize);
        PdfWriter writer = PdfWriter.GetInstance(document, newPdfStream);
        document.Open();
        PdfContentByte content = writer.DirectContent;
        PdfImportedPage page = writer.GetImportedPage(reader, 1);
        content.AddTemplate(page, 0, -reader.GetPageSize(1).Height * 2 / 3);
        content.SetColorFill(BaseColor.WHITE);
        content.Fill();
        document.SetPageSize(pageSize);
        document.NewPage();

现在它运作良好。你可以在pageSize变量中调整文件大小。祝你好运 !