Stories

Detail Return Return

用Python插入SVG到PDF文件 - Stories Detail

將SVG(可縮放矢量圖形)文件插入到PDF(便攜式文檔格式)文件中不僅能夠保留SVG圖像的矢量特性,確保圖像在任何分辨率下都保持清晰,還能夠充分利用PDF格式在跨平台文檔分享方面的優勢,使得技術文檔、手冊、報告等內容更加豐富多樣且易於傳播。使用Python可以輕鬆實現SVG到PDF的插入。本文將介紹如何使用Python插入SVG文件到PDF文檔中

  • 用Python插入SVG到PDF頁面
  • 用Python將SVG作為附件嵌入PDF
  • 用Python將SVG作為附件註釋嵌入PDF

本文所使用的方法需要用到Spire.PDF for Python,PyPI:pip install Spire.PDF

申請免費License

用Python插入SVG到PDF頁面

我們可以PdfDocument.LoadFromFile()方法載入並讀取SVG文件內容,然後使用PdfPageBase.Canvas.Draw()方法將其繪製在PDF頁面上來實現插入SVG文件內容到PDF頁面上。以下是詳細操作步驟:

  1. 導入所需模塊。
  2. 創建PdfDocument對象並使用PdfDocument.LoadFromFile()方法載入PDF文件。
  3. 創建另一個PdfDocument對象並使用PdfDocument.LoadFromFile()方法載入SVG文件。
  4. 使用PdfDocument.Pages.get_Item(0).CreateTemplate()方法讀取SVG文件內容創建模板。
  5. 使用PdfDocument.Pages.get_Item().Canvas.DrawTemplate()方法將SVG文件內容繪製在PDF頁面上。
  6. 使用PdfDocument.SaveToFile()方法保存文檔。
  7. 釋放資源。

代碼示例

from spire.pdf import PdfDocument, PointF, SizeF, FileFormat

# 創建PdfDocument實例並加載PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# 創建另一個PdfDocument實例並加載SVG文件
svg = PdfDocument()
svg.LoadFromFile("圖表.svg", FileFormat.SVG)

# 創建SVG文件的模板
svgTemplate = svg.Pages.get_Item(0).CreateTemplate()

# 在現有PDF文件的頁面上繪製模板
pdf.Pages.get_Item(0).Canvas.DrawTemplate(svgTemplate, PointF(60.0, 420.0), SizeF(490.0, 230.0))

# 保存PDF文件
pdf.SaveToFile("output/繪製SVG到PDF.pdf")
pdf.Dispose()

結果
Python繪製SVG到PDF

用Python將SVG作為附件嵌入PDF

我們還可以將SVG文件作為附件直接嵌入到PDF文檔中,瀏覽文檔時點擊附件即可查看SVG文件內容。需要注意的是,直接嵌入的附件只會在PDF查看器的附件欄顯示。以下是詳細操作步驟:

  1. 導入所需模塊。
  2. 創建PdfDocument對象並使用PdfDocument.LoadFromFile()方法載入PDF文檔。
  3. 創建PdfAttachment對象以創建一個附件。
  4. 創建Stream對象,將SVG文件載入為流。
  5. 使用Stream.ToArray()方法將SVG文件流轉換為字節數組,並通過PdfAttachment.Data屬性將其設置為附件的數據。
  6. 通過PdfAttachment.DescriptionPdfAttachment.MimeType屬性設置附件的説明和MIME類型。
  7. 使用PdfDocument.Attachments.Add()方法將附件添加到PDF文檔中。
  8. 使用PdfDocument.SaveToFile()方法保存文檔。
  9. 釋放資源。

代碼示例

from spire.pdf import PdfDocument, Stream, PdfAttachment

# 創建PdfDocument實例並加載PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# 創建PdfAttachment實例
svgAttachment = PdfAttachment("圖表.svg")

# 加載SVG文件為流
svgStream = Stream("圖表.svg")

# 設置SVG流作為附件數據
svgAttachment.Data = svgStream.ToArray()

# 設置附件描述和MIME類型
svgAttachment.Description = "這是一個SVG文件"
svgAttachment.MimeType = "image/svg+xml"

# 將附件添加到文檔中
pdf.Attachments.Add(svgAttachment)

# 保存文檔
pdf.SaveToFile("output/插入SVG附件到PDF.pdf")
pdf.Dispose()

結果
Python插入SVG附件到PDF

用Python將SVG作為附件註釋嵌入PDF

除了將SVG文件直接作為附件嵌入到PDF文檔中,我們還可以將SVG文件作為註釋的附件嵌入到PDF文檔中,從而在文檔頁面上提示附件信息。註釋附件能夠在頁面上顯示為圖表,並且能夠直接點擊進行查看。以下是詳細操作步驟:

  1. 導入所需模塊。
  2. 創建PdfDocument對象並使用PdfDocument.LoadFromFile()方法載入PDF文檔。
  3. 使用SVG文件創建一個PdfAttachmentAnnotation對象從而創建一個附件註釋。
  4. 使用PdfAttachmentAnnotation類下的屬性設置註釋格式。
  5. 使用PdfPageBase.AnnotationsWidget.Add()方法將附件註釋添加到PDF頁面上。
  6. 使用PdfDocument.SaveToFile()方法保存PDF文檔。
  7. 釋放資源。

代碼示例

from spire.pdf import PdfDocument, PdfAttachmentAnnotation, RectangleF, Color, PdfAnnotationFlags, PdfAttachmentIcon, \
    PdfRGBColor

# 創建PdfDocument實例並加載PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# 創建PdfAttachmentAnnotation實例
rect = RectangleF.FromLTRB(90.0, 420.0, 120.0, 450.0)
svgAnnotation = PdfAttachmentAnnotation(rect, "圖表.svg")

# 設置註釋屬性
svgAnnotation.Color = PdfRGBColor(Color.get_Blue())
svgAnnotation.Flags = PdfAnnotationFlags.NoZoom
svgAnnotation.Icon = PdfAttachmentIcon.Graph
svgAnnotation.Text = "SVG圖表"

# 將註釋添加到第一頁
pdf.Pages.get_Item(0).AnnotationsWidget.Add(svgAnnotation)

# 保存文檔
pdf.SaveToFile("output/插入SVG附件註釋到PDF.pdf")
pdf.Dispose()

結果
Python插入SVG附件註釋到PDF

本文介紹瞭如何使用Python將SVG文件插入到PDF文檔中,包括直接將SVG文件內容插入到PDF頁面和將SVG文件作為附件嵌入到PDF文檔中。

更多PDF文檔處理技巧請前往Spire.PDF for Python教程查看。

user avatar 8848_62c77d4bb2532 Avatar yangxiansheng_5a1b9b93a3a44 Avatar
Favorites 2 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.