C# 建立、讀取PDF文檔

來源:互聯網
上載者:User

標籤:C#   .NET   建立、讀取PDF   類庫   

產生PDF文檔我們通常可以通過文檔轉換的形式來得到想要的PDF,但我們也可以通過最直接的方式來建立PDF文檔,由此本篇文章將介紹C#如何來建立帶圖、文元素的PDF文檔。同理,對於需要讀取PDF文檔的情況,我們也可以分情況來讀取想要的文件項目(文本、圖片)。在下面的樣本中將做詳細介紹。

樣本要點梳理:

一、建立PDF文檔(可支援中文)
1.寫入文本(包括頁面邊界、字型、字型大小等設定)
2.繪入圖片
二、讀取PDF文檔
1.讀取文本
1.1讀取全部文本
1.2讀取指定地區文本
2.讀取圖片
使用工具:Free Spire.PDF for .NET4.3 (最新免費版)
註:在編輯代碼前引用Spire.PDF.dll,dll檔案可在安裝路徑下的Bin檔案夾中擷取。

一、建立PDF文檔

C#

using Spire.Pdf;using Spire.Pdf.Graphics;using System.Drawing;namespace CreatePDF_PDF{    class Program    {        static void Main(string[] args)        {            //初始化一個PdfDocument類執行個體            PdfDocument document = new PdfDocument();            //聲明 PdfUnitConvertor和PdfMargins類對象            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();            PdfMargins margins = new PdfMargins();            //設定頁面邊界            margins.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);            margins.Bottom = margins.Top;            margins.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);            margins.Right = margins.Left;            //新添加一個A4大小的頁面            PdfPageBase page = document.Pages.Add(PdfPageSize.A4, margins);            //自訂PdfTrueTypeFont、PdfPen執行個體,設定字型類型、字型大小和字型顏色            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("楷體", 11f),true);            PdfPen pen = new PdfPen(Color.Black);            //調用DrawString()方法在指定位置寫入文本            string text = ("《蝶戀花 送春》 \n 樓外垂楊千萬縷,欲系青春,少住春還去。猶自風前飄柳絮,隨春且看歸何處?\n 綠滿山川聞杜宇,便作無情,莫也愁人苦。把酒送春春不語,黃昏卻下瀟瀟雨。");            page.Canvas.DrawString(text, font, pen, 15, 13);            //載入圖片,並調用DrawImage()方法在指定位置繪入圖片            PdfImage image = PdfImage.FromFile("image1.jpg");            float width = image.Width * 0.55f;            float height = image.Height * 0.55f;            float y = (page.Canvas.ClientSize.Width - width) / 3;            page.Canvas.DrawImage(image, y, 60, width, height);            //儲存並開啟文檔            document.SaveToFile("PDF建立.pdf");            System.Diagnostics.Process.Start("PDF建立.pdf");        }    }}

建立結果:

這裡建立PDF文檔,Spire.PDF支援直接產生PDF文檔並同時實現添加文本、圖片、圖形、浮水印、表格、頁首頁尾、頁碼等操作,這裡範例程式碼以添加文本、圖片為例,有需要可以參見以下部落格:

  • C# 添加PDF浮水印
  • C# 建立PDF表格二、 讀取PDF文檔

    測試文檔:

    1. 讀取PDF文本1.1讀取全部文本

    C#

using Spire.Pdf;using System;using System.IO;using System.Text;namespace ExtractText_PDF{    class Program    {        static void Main(string[] args)        {            //執行個體化PdfDocument類對象,並載入PDF文檔            PdfDocument doc = new PdfDocument();            doc.LoadFromFile("sample.pdf");            //執行個體化一個StringBuilder 對象            StringBuilder content = new StringBuilder();            //遍曆文檔所有PDF頁面,提取文本            foreach (PdfPageBase page in doc.Pages)            {                content.Append(page.ExtractText());            }            //將提取到的文本寫為.txt格式並儲存到本地路徑            String fileName = "擷取文本.txt";            File.WriteAllText(fileName, content.ToString());            System.Diagnostics.Process.Start("擷取文本.txt");        }    }}

讀取結果:

1.2 讀取指定地區文本

C#

using Spire.Pdf;using System.IO;using System.Text;using System.Drawing;namespace ExtractText1_PDF{    class Program    {        static void Main(string[] args)        {            //建立PdfDocument類執行個體,並載入PDF文檔            PdfDocument pdf = new PdfDocument();             pdf.LoadFromFile("sample.pdf");            //擷取PDF第一頁              PdfPageBase page = pdf.Pages[0];            //從第一頁的指定矩形地區內提取文本              string text = page.ExtractText(new RectangleF(50, 50, 500, 170));            //儲存文本到.txt檔案,並開啟文檔            StringBuilder sb = new StringBuilder();            sb.AppendLine(text);            File.WriteAllText("Extract.txt", sb.ToString());            System.Diagnostics.Process.Start("Extract.txt");        }    }}

讀取結果:
(此時讀取的就只是指定地區內的文本)

2. 讀取PDF圖片

C#

using Spire.Pdf;using System.Collections.Generic;using System.Drawing;namespace ExtractImages_PDF{    class Program    {        static void Main(string[] args)        {            //建立一個PdfDocument類對象,載入PDF測試文檔            PdfDocument doc = new PdfDocument();             doc.LoadFromFile("sample.pdf");            //聲明List類對象            List<Image> ListImage = new List<Image>();            //遍曆PDF文檔所有頁面            for (int i = 0; i < doc.Pages.Count; i++)            {                //擷取文檔所有頁,並提取頁面中的所有圖片                PdfPageBase page = doc.Pages[i];                Image[] images = page.ExtractImages();                if (images != null && images.Length > 0)                {                    ListImage.AddRange(images);                }            }            //將擷取到的圖片儲存到本地路徑            if (ListImage.Count > 0)            {                for (int i = 0; i < ListImage.Count; i++)                {                    Image image = ListImage[i];                    image.Save("image" + (i + 1).ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);                }                //開啟擷取到的圖片                System.Diagnostics.Process.Start("image1.png");            }        }    }}

讀取結果:

C# 建立、讀取PDF文檔

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.