C#/VB.NET 在PDF中新增檔案包(Portfolio)

iceblue發表於2020-06-29

PDF檔案包(Portfolio)允許使用者將多種不同型別的檔案如Word、Excel、PDF、PowerPoint和圖片等集合到一個PDF檔案中,使用者可以開啟、更改PDF檔案包中的單個檔案。新增檔案包時,可支援建立檔案包時並直接將檔案新增到檔案包;或者建立檔案包的同時建立資料夾,並將檔案新增到資料夾

環境準備:程式中需要使用到PDF類庫工具(Spire.PDF for .NET hotfix 6.5.15及以上版本)下載後,解壓,將Bin資料夾下的dll檔案新增引用到VS程式。如下效果:

 

 

1. 建立檔案包時直接新增檔案

C#

using Spire.Pdf;
using System;

namespace CreatePDFPortfolio_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立陣列
            String[] files = new String[] { "sample.pdf", "sample.docx", "sample.xlsx", "sample.txt", "sample.pptx" };

            //建立PdfDocument例項
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("test.pdf");
            
            //建立PDF檔案包並新增檔案
            for (int i = 0; i < files.Length; i++)
            {
                pdf.Collection.AddFile(files[i]);
             } 

            //儲存文件
            pdf.SaveToFile("PortfolioWithFiles.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("PortfolioWithFiles.pdf");
        }
    }
}

VB.NET

Imports Spire.Pdf


Namespace CreatePDFPortfolio_PDF
    Class Program
        Private Shared Sub Main(args As String())
            '建立陣列
            Dim files As [String]() = New [String]() {"sample.pdf", "sample.docx", "sample.xlsx", "sample.txt", "sample.pptx"}

            '建立PdfDocument例項
            Dim pdf As New PdfDocument()
            pdf.LoadFromFile("test.pdf")

            '建立PDF檔案包並新增檔案
            For i As Integer = 0 To files.Length - 1

                pdf.Collection.AddFile(files(i))
            Next

            '儲存文件
            pdf.SaveToFile("PortfolioWithFiles.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("PortfolioWithFiles.pdf")
        End Sub
    End Class
End Namespace

2. 建立檔案包時建立資料夾,並將檔案新增到資料夾

C#

using Spire.Pdf;
using Spire.Pdf.Collections;
using System;


namespace CreatePDFPortfolio2
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立陣列
            String[] files = new String[] { "sample.pdf", "sample.docx", "sample.xlsx", "sample.txt", "sample.pptx" };
            
            //建立PdfDocument例項
             PdfDocument doc = new PdfDocument(); 
            
            //建立PDF檔案包,新增資料夾,並向資料夾新增檔案
            for (int i = 0; i < files.Length; i++)
              {
                PdfFolder folder = doc.Collection.Folders.CreateSubfolder("Folder" + i);
                folder.AddFile(files[i]);
              }
                
            //儲存文件
            doc.SaveToFile("PortfolioWithFolders2.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("PortfolioWithFolders2.pdf");
        }
    }
}

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Collections

Namespace CreatePDFPortfolio2
    Class Program
        Private Shared Sub Main(args As String())
            '建立陣列
            Dim files As [String]() = New [String]() {"sample.pdf", "sample.docx", "sample.xlsx", "sample.txt", "sample.pptx"}

            '建立PdfDocument例項
            Dim doc As New PdfDocument()

            '建立PDF檔案包,新增資料夾,並向資料夾新增檔案
            For i As Integer = 0 To files.Length - 1
                Dim folder As PdfFolder = doc.Collection.Folders.CreateSubfolder("Folder" + i)
                folder.AddFile(files(i))
            Next

            '儲存文件
            doc.SaveToFile("PortfolioWithFolders2.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("PortfolioWithFolders2.pdf")
        End Sub
    End Class
End Namespace

(完)

相關文章