C#/VB.NET 將SVG圖片添加到PDF、轉換為PDF

来源:https://www.cnblogs.com/Yesi/archive/2020/05/20/12922067.html

以下內容介紹在C# 程式中如何將SVG圖片添加到PDF文檔、以及如何將SVG圖片轉換為PDF文檔。 一、環境準備 先下載PDF類庫工具,Spire.PDF for .NET hotfix 6.5.6及以上版本(下載時,註意版本信息)。下載後,解壓文件,將Bin文件夾下的Spire.Pdf.dll文件 ...


以下內容介紹在C# 程式中如何將SVG圖片添加到PDF文檔、以及如何將SVG圖片轉換為PDF文檔。

一、環境準備

下載PDF類庫工具,Spire.PDF for .NET hotfix 6.5.6及以上版本(下載時,註意版本信息)。下載後,解壓文件,將Bin文件夾下的Spire.Pdf.dll文件在VS中的“解決方案資源管理器”進行“添加引用”。另外,也可以通過Nuget下載。

dll引用效果如下:

 

 

 

用於測試的SVG圖片,如下圖:

二、代碼示例

1. 添加SVGPDF文檔

C#

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;


namespace InsertSVGImage_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //載入SVG圖片
            PdfDocument file1 = new PdfDocument();
            file1.LoadFromSvg("Image.svg");

            //創建一個PDF文檔,添加一頁
            PdfDocument pdf = new PdfDocument();
            pdf.AppendPage();

            //根據SVG圖片創建模板,並將模板繪製到PDF
            PdfTemplate template = file1.Pages[0].CreateTemplate();
            template.Draw(pdf.Pages[0].Canvas, new PointF());

            //保存PDF文檔
            pdf.SaveToFile("AddSVGtoPDF.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("AddSVGtoPDF.pdf");
        }
    }
}

VB.NET

Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics

Namespace InsertSVGImage_PDF
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            '載入SVG圖片
            Dim file1 As PdfDocument = New PdfDocument
            file1.LoadFromSvg("Image.svg")
            '創建一個PDF文檔,添加一頁
            Dim pdf As PdfDocument = New PdfDocument
            pdf.AppendPage
            '根據SVG圖片創建模板,並將模板繪製到PDF  
            Dim template As PdfTemplate = file1.Pages(0).CreateTemplate
            template.Draw(pdf.Pages(0).Canvas, New PointF)
            '保存PDF文檔
            pdf.SaveToFile("AddSVGtoPDF.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("AddSVGtoPDF.pdf")
        End Sub
    End Class
End Namespace

SVG圖片添加效果:

 

2. SVG圖片轉換成PDF文檔

C#

using Spire.Pdf;


namespace SVGtoPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //載入SVG圖片
            PdfDocument doc = new PdfDocument();
            doc.LoadFromSvg("Image.svg");

            //調用方法SaveToFile()保存為PDF格式
            doc.SaveToFile("ConvertSVGtoPDF.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("ConvertSVGtoPDF.pdf");
        }
    }
}

VB.NET

Imports Spire.Pdf

Namespace SVGtoPDF
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            '載入SVG圖片
            Dim doc As PdfDocument = New PdfDocument
            doc.LoadFromSvg("Image.svg")
            '調用方法SaveToFile()保存為PDF格式
            doc.SaveToFile("ConvertSVGtoPDF.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("ConvertSVGtoPDF.pdf")
        End Sub
    End Class
End Namespace

SVG轉PDF效果:

 

<完>


您的分享是我們最大的動力!

更多相關文章
  • 隨著信息技術對人們工作生活的影響越來越大,人們對於應用程式的依賴性也越來越大,越來越多的人使用應用程式來解決自己工作和生活中的問題,這也導致應用程式的開發需求越來越高,傳統的應用程式開發方法已經沒有辦法滿足市場的需求,低代碼開發平臺在這樣的背景下誕生了。 力軟低代碼開發平臺可以減少開發成本,代碼、功 ...
  • C#手動建立Table後,並設置列和賦值 public DataTable CreateTable() { //創建Table1 DataTable dt = new DataTable(); //對Table1添加列名,並設置列值類型 DataTable dt1 = new DataTable() ...
  • C#中的關於Table的Merge() 簡介: Merge()方法可以實現對兩個table具有相同欄位的進行Morge,也可以實現對兩個table具有不同欄位的進行Merge。但是實現後的結果可能不太一樣。 一、對兩個table具有相同的欄位進行Merge的時候,所得到Merge後的table行數小 ...
  • 倉儲物流的過程中往往少不了一些使用熱敏印表機或者碳帶印表機列印一些條碼、信息貼在實物或者包裹上 最好的實現方式不過於直接使用熱敏代碼形成文本直接輸出到印表機做列印 但是熱敏代碼也是一門需要特殊的語言,需要學習 故為了更快更方便的實現,就用到了畫布繪製後形成image輸出到印表機 而image也是有要 ...
  • 關於讀取Excel模板對模板讀寫操作 1.根據文件名稱(帶盤符的文件目錄),建立SLDocument對象 SLDocument sldocument = new SLDocument(filename); sldocument.SelectWorksheet("Sheet1"); 2.讀取某一單元格 ...
  • 上一篇文章(https://www.cnblogs.com/meowv/p/12913676.html)我們用Code First的方式創建了博客所需的實體類,生成了資料庫表,完成了對EF Core的封裝。 本篇說一下自定義倉儲的實現方式,其實在abp框架中已經預設給我們實現了預設的通用(泛型)倉儲 ...
  • ketcup git地址:https://github.com/simple-gr/ketchup rabbitmq 安裝 1.docker pull rabbitmq:management 2.docker run -itd --name rabbitmq --restart=always -p ...
  • 現在網上的 CsvHelper 教程都比較舊,本文基於 CsvHelper 最新版本 15.0.5 ...
一周排行
  • 本次課程就正式進入開發部分。 首先我們先搭建項目框架,還是和之前漸進式風格保持一致,除必備組件外,儘量使用原生功能以方便大家理解。 開發工具:vs 2019 或以上 資料庫:SQL SERVER 2017 或以上 其他需要用到的我們在項目過程中再提。 一、新建 MVC項目 1、打開VS 2019,C ...
  • 一.背景說明: 之前分享過一個微服務開發框架, “享一個集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服務開發框架”,前兩天在Github上收到一個Issues,是想我 ...
  • 前言 Http我們都已經耳熟能詳了,而關於Http學習的文章網上有很多,各個知識點的講解也可說是深入淺出。然而,學習過後,我們對Http還是一知半解。問題出在了哪? Http是一個客戶機與伺服器之間的通信的協議,真的想學習Http,就必須把客戶機和伺服器也學了,也就是說,必須立體的學習,不然我們永遠 ...
  • 本人製作的這個 “簡易日誌 (SimpleLogger)” 包裡面包含的代碼邏輯,最開始也就是簡單地寫入文本,後來經過實際使用的演化,做了各種優化,添加了一些實用的特性,感覺用著還不錯。正所謂獨樂樂不如眾樂樂,於是將其打包上傳到微軟的包管理庫 NuGet 中,大家可以使用試試,相互交流。 ...
  • 1.需求示意圖 2.需求描述 原本是為了給做unity3d客戶端開發的同事提供不定時的消息推送,比如商城購買道具後服務端將道具信息推送給客戶端。 本篇文章簡化理解,用“相關部門開展活動,向全市人民徵集社會服務改善意見”為例子。但核心想法一致:單向推送(指這個需求上只需要單向)。所以這個功能並不是聊天 ...
  • 找到項目中ServiceStack.Text.dll文件的版本,比如我的版本是5.0.0,到GitHub上下載對應的源碼(https://github.com/ServiceStack/ServiceStack.Text/tags) 打開解決方案,重新生成ServiceStack.Text項目,如果 ...
  • 前言 上一篇文章主要介紹了IL的概念以及基礎的示例代碼,在這一篇文章中我們將通過對象調用看IL。 創建對象與調用方法 class Program { static void Main(string[] args) { var obj = new MyClass(); Console.WriteLin ...
  • abp版本5.9 概述 數據遷移無非就是兩件事情,1、創建資料庫,並根據實體創建對應的表;2、添加一些初始數據 abp的數據遷移也是完成這兩件事,比較特殊的是它是多租戶saas系統,而且支持不同的租戶有獨立的資料庫。所以abp中的遷移要先遷移戶主Host,再遷移租戶Tenant的資料庫 它的遷移定義 ...
  • 本文屬於OData系列 目錄 武裝你的WEBAPI-OData入門 武裝你的WEBAPI-OData便捷查詢 武裝你的WEBAPI-OData分頁查詢 武裝你的WEBAPI-OData資源更新Delta 武裝你的WEBAPI-OData之EDM 武裝你的WEBAPI-OData常見問題 武裝你的WE ...
  • 前言 面試總是會被問到有沒有用過分散式鎖、redis 鎖,大部分讀者平時很少接觸到,所以只能很無奈的回答 “沒有”。本文通過 Spring Boot 整合 redisson 來實現分散式鎖,並結合 demo 測試結果。 首先看下大佬總結的圖 正文 添加依賴 <!--redis--> <depende ...