VB.NET PDF 创建器(代码示例教程)

This article was translated from English: Does it need improvement?
Translated
View the article in English

本教程将逐步指导您如何在VB.NET中创建和编辑PDF文件。 此技术同样适用于ASP.NET web 应用控制台应用程序Windows 服务桌面程序。 我们将使用VB.NET创建针对.NET Framework 4.6.2或.NET Core 2的PDF项目。您所需要的只是一个Visual Basic .NET开发环境,例如Microsoft Visual Studio Community。

要了解如何在C#中使用IronPDF,请参阅 本指南.

要了解如何在 F# 中使用 IronPDF,请参阅本指南.


概述

使用 IronPDF 创建和编辑 PDF 的 VB .NET 代码

使用 VB.NET 将 HTML 渲染为 PDF,应用样式,利用动态内容,并轻松编辑您的文件。 创建PDFs简单且兼容.NET Framework 4.6.2、.NET Core 3.1、.NET 8、7、6和5。无需专有文件格式或调用不同的API。

本教程提供了文档,逐步引导您完成每个任务,均使用免费的开发版本。受到开发人员青睐的 IronPDF 软件. VB.NET代码示例针对您的用例进行了特定设计,因此您可以在熟悉的环境中轻松查看步骤。 此VB .NET PDF库具有全面的创建和设置功能,适用于各种项目,无论是在ASP.NET应用程序、控制台还是桌面上。

包括在 IronPDF 中:

  • 来自我们的 .NET PDF 库开发团队的直接票务支持(真实的人类!)
  • 支持 HTML、ASPX 表单、MVC 视图、图像以及您已经使用的所有文档格式。
  • Microsoft Visual Studio安装让您快速启动并运行
  • 无限制的免费开发,以及从 $749 开始的上线许可证。

    步骤 1

1. 从IronPDF免费下载VB .NET PDF库

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronPDFNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。

适用于PDF的C# NuGet库 nuget.org/packages/IronPdf/
Install-Package IronPdf

考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip

手动安装到你的项目中

下载DLL

通过 NuGet 安装

在 Visual Studio 中,右键单击您的项目解决方案资源管理器,然后选择“管理 NuGet 包...”。 从那里开始,搜索IronPDF并安装最新版本... 点击确定以应对任何弹出的对话框。

这将适用于任何C# .NET Framework项目,从Framework 4.6.2及以上版本,或.NET Core 2及以上版本。 它在VB.NET项目中同样有效。

Install-Package IronPdf

https://www.nuget.org/packages/IronPdf

通过 DLL 安装

另外,也可以从以下地址下载 IronPDF DLL 并手动安装到项目或 GAC 中 https://ironpdf.com/packages/IronPdf.zip

切记在任何使用 IronPDF 的 vb 类文件顶部添加此语句: ``` Imports IronPdf;

<hr class="separator">
<p class="main-content__segment-title">教程</p>

## 2. 使用VB.NET创建PDF

使用 **Visual Basic ASP.NET** 利用 IronPDF 首次创建 PDF 文件出奇地简单,与使用专有设计 API 的库(如 ***iTextSharp***)相比。

我们可以使用HTML(采用基于谷歌 Chromium 的完美像素渲染引擎)定义我们的PDF内容并将其简单地呈现到一个文件中。

这是我们在VB.NET中创建PDF的最简单代码:

```vb
:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-1.cs

这将生成一个.NET生成的PDF文件,包含您的确切文本,尽管此时缺少一些设计。

我们可以通过添加标题行Imports IronPdf来改进这段代码。 通过添加最后一行代码System.Diagnostics.Process.Start,我们在操作系统的默认PDF查看器中打开PDF,使项目更具意义。

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-2.cs
Imports IronPdf

Module Module1
    Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim document = renderer.RenderHtmlAsPdf("<h1> My First PDF in VB.NET</h1>")
        document.SaveAs("MyFirst.pdf")
        System.Diagnostics.Process.Start("MyFirst.pdf")
    End Sub
End Module
VB.NET

另一种方法是使用 IronPDF 中优雅的 "RenderUrlAsPdf "方法,将 URL 中的任何现有网页渲染为 PDF。

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-3.cs
Imports IronPdf

Module Module1
    Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim document = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
        document.SaveAs("UrlToPdf.pdf")
        System.Diagnostics.Process.Start("UrlToPdf.pdf")
    End Sub
End Module
VB.NET

3. 为VB.NET PDF应用样式

要在VB.NET中设置我们的PDF内容样式,我们可以充分利用CSS、JavaScript和图像。 我们可能会链接到本地资源,甚至远程或CDN基础的资源,如Google Fonts。 我们甚至可以使用DataURIs 可将图像和资产以字符串形式嵌入 HTML 中.

对于高级设计,我们可以使用两阶段过程:

  1. 首先,我们完美地开发和设计我们的HTML。 这项任务可能涉及内部设计团队,分担工作量。
  2. 使用 VB.NET 和我们的 PDF 库将该文件渲染为 PDF。

    将HTML文件渲染为PDF的VB.NET代码:

    此方法呈现一个 HTML 文档,就像它是作为文件打开的一样。(*文件://协议****).

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-4.cs
Imports IronPdf

Module Module1
    Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.CssMediaType = Rendering.PdfCssMediaType.Print
        renderer.RenderingOptions.PrintHtmlBackgrounds = False
        renderer.RenderingOptions.PaperOrientation = Rendering.PdfPaperOrientation.Landscape
        renderer.RenderingOptions.WaitFor.RenderDelay(150)
        Dim document = renderer.RenderHtmlFileAsPdf("C:\Users\jacob\Dropbox\Visual Studio\Tutorials\VB.Net.Pdf.Tutorial\VB.Net.Pdf.Tutorial\slideshow\index.html")
        document.SaveAs("Html5.pdf")
        System.Diagnostics.Process.Start("Html5.pdf")
    End Sub
End Module
VB.NET

我们还可以通过添加项目相对文件路径来缩短 URL,例如

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-5.cs
Dim document = renderer.RenderHtmlFileAsPdf("..\..\slideshow\index.html")
VB.NET

您可以看到 ChromePdfRenderer 渲染器具有一个 RenderingOptions 属性,我们可以在此示例中使用它来:

  • 将CSS媒体类型设置为“print”,以便我们不看到仅限屏幕的CSS3样式。
  • 忽略HTML背景
  • 将PDF的虚拟纸张设置为横向布局
  • 在渲染中添加一个小的延迟,以便JavaScript完成处理。

    我们的示例 HTML 文件使用了 JavaScript、CSS3 和图像。 此HTML创建了一个动态的、移动设备感知的幻灯片展示,源地址为 https://leemark.github.io/better-simple-slideshow/

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-6.cs
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>A simple DIY responsive slideshow made with HTML5, CSS3, and JavaScript</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link href='http://fonts.googleapis.com/css?family=Open+Sans|Open+Sans+Condensed:700' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="demo/css/demostyles.css">
        <link rel="stylesheet" href="css/simple-slideshow-styles.css">
    </head>
    <body>
        <!--[if lt IE 8]>
            <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
        <![endif]-->
        <header>
            <h1>A Better Simple Slideshow</h1>
            <p><span class="desc">A simple DIY responsive JavaScript slideshow.</span> [<a href="https://github.com/leemark/better-simple-slideshow">GitHub<span> repo</span></a>]</p>
        </header>
        <div class="bss-slides num1" tabindex="1" autofocus="autofocus">
            <figure>
              <img src="demo/img/medium.jpg" width="100%" /><figcaption>"Medium" by <a href="https://www.flickr.com/photos/thomashawk/14586158819/">Thomas Hawk</a>.</figcaption>
            </figure>
            <figure>
              <img src="demo/img/colorado.jpg" width="100%" /><figcaption>"Colorado" by <a href="https://www.flickr.com/photos/stuckincustoms/88370744">Trey Ratcliff</a>.</figcaption>
            </figure>
            <figure>
              <img src="demo/img/monte-vista.jpg" width="100%" /><figcaption>"Early Morning at the Monte Vista Wildlife Refuge, Colorado" by <a href="https://www.flickr.com/photos/davesoldano/8572429635">Dave Soldano</a>.</figcaption>
            </figure>
            <figure>
              <img src="demo/img/sunrise.jpg" width="100%" /><figcaption>"Sunrise in Eastern Colorado" by <a href="https://www.flickr.com/photos/35528040@N04/6673031153">Pam Morris</a>.</figcaption>
            </figure>
            <figure>
              <img src="demo/img/colorado-colors.jpg" width="100%" /><figcaption>"colorado colors" by <a href="https://www.flickr.com/photos/cptspock/2857543585">Jasen Miller</a>.</figcaption>
            </figure>
        </div> <!-- // bss-slides -->
<div class="content">
<h2>What is it?</h2>
<p>It's a fairly basic slideshow, written in javascript. This is a dual-purpose project, it's meant to be something you can drop right into your page and use if you so choose, but it's also meant as an example/tutorial script showing how to build a simple DIY slideshow from scratch on your own. <a href="http://themarklee.com/2014/10/05/better-simple-slideshow/">Here is a tutorial/walkthrough</a>.</p>
<h2>Features</h2>
<ul>
    <li>fully responsive</li>
    <li>option for auto-advancing slides, or manually advancing by user</li>
    <li>multiple slideshows per-page</li>
    <li>supports arrow-key navigation</li>
    <li>full-screen toggle using HTML5 fullscreen api</li>
    <li>swipe events supported on touch devices (requires <a href="https://github.com/hammerjs/hammer.js">hammer.js</a>)</li>
    <li>written in vanilla JS--this means no jQuery dependency (much &hearts; for <a href="https://github.com/jquery/jquery">jQuery</a> though!)</li>
</ul>
<h2>Getting Started</h2>
<ol>
<li><p>HTML markup for the slideshow should look basically like this, with a container element wrapping the whole thing (doesn't have to be a <span class="code">&lt;div&gt;</span>) and each slide is a <span class="code">&lt;figure&gt;</span>.</p>
<script src="https://gist.github.com/leemark/83571d9f8f0e3ad853a8.js"></script> </li>
<li>Include the script: <span class="code">js/better-simple-slideshow.min.js</span> or <span class="code">js/better-simple-slideshow.js</span></li>
<li>Include the stylesheet <span class="code">css/simple-slideshow-styles.css</span></li>
<li>Initialize the slideshow:
<script src="https://gist.github.com/leemark/479d4ecc4df38fba500c.js"></script>
</li>
</ol>
<h2>Options</h2>
To customize functionality, create an options object, then pass it into <span class="code">makeBSS()</span> as the second argument, as seen below:
<script src="https://gist.github.com/leemark/c6e0f5c47acb7bf9be16.js"></script>
<h2>Demo/Examples</h2>
    <h3>Example #1 (slideshow at top of this page)</h3>
    <p>HTML markup:</p>
    <script src="https://gist.github.com/leemark/19bafdb1abf8f6b4e147.js"></script>
    <p>JavaScript code:</p>
    <script src="https://gist.github.com/leemark/a09d2726b5bfc92ea68c.js"></script>
    <h3>Example #2 (below)</h3>
        <div class="bss-slides num2" tabindex="2">
           <figure>
              <img src="http://themarklee.com/wp-content/uploads/2013/12/snowying.jpg" width="100%" /><figcaption>"Snowying" by <a href="http://www.flickr.com/photos/fiddleoak/8511209344/">fiddleoak</a>.</figcaption>
           </figure>
            <figure>
                <img src="http://themarklee.com/wp-content/uploads/2013/12/starlight.jpg" width="100%" /><figcaption>"Starlight" by <a href="http://www.flickr.com/photos/chaoticmind75/10738494123/in/set-72157626146319517">ChaoticMind75</a>.</figcaption>
           </figure>
           <figure>
              <img src="http://themarklee.com/wp-content/uploads/2013/12/snowstorm.jpg" width="100%" /><figcaption>"Snowstorm" by <a href="http://www.flickr.com/photos/tylerbeaulawrence/8539457508/">Beaulawrence</a>.</figcaption>
           </figure>
            <figure>
              <img src="http://themarklee.com/wp-content/uploads/2013/12/misty-winter-afternoon.jpg" width="100%" /><figcaption>"Misty winter afternoon" by <a href="http://www.flickr.com/photos/22746515@N02/5277611659/">Bert Kaufmann</a>.</figcaption>
           </figure>
            <figure>
              <img src="http://themarklee.com/wp-content/uploads/2013/12/good-morning.jpg" width="100%" /><figcaption>"Good Morning!" by <a href="http://www.flickr.com/photos/frank_wuestefeld/4306107546/">Frank Wuestefeld</a>.</figcaption>
           </figure>
        </div> <!-- // bss-slides -->
<p>HTML markup:</p>
<script src="https://gist.github.com/leemark/de90c78cb73673650a5a.js"></script>
<p>JavaScript code:</p>
<script src="https://gist.github.com/leemark/046103061c89cdf07e4a.js"></script>
</div> <!-- // content -->
<footer>Example photos are property of their respective owners, all code is <a href="https://github.com/leemark/better-simple-slideshow/blob/gh-pages/LICENSE">freely licensed for your use</a>. <br>Made especially for you by <a href="http://themarklee.com">Mark Lee</a> aka <a href="http://twitter.com/@therealmarklee">@therealmarklee</a> <br><span>&#9774; + &hearts;</span></footer>
<script src="demo/js/hammer.min.js"></script><!-- for swipe support on touch interfaces -->
<script src="js/better-simple-slideshow.min.js"></script>
<script>
var opts = {
    auto : {
        speed : 3500,
        pauseOnHover : true
    },
    fullScreen : false,
    swipe : true
};
makeBSS('.num1', opts);
var opts2 = {
    auto : false,
    fullScreen : true,
    swipe : true
};
makeBSS('.num2', opts2);
</script>
</body>
</html>
HTML

如您所见,此示例中使用了HTML网页的全部“厨房水槽”功能。 渲染是由IronPDF内部使用来自Google的Chromium HTML引擎和v8 JavaScript引擎执行的。 他们不需要安装在您的系统中,当您使用IronPDF时,整个包会自动添加到您的项目中。

3.1. 添加页眉和页脚

既然我们有了一个漂亮的PDF渲染器,我们现在可能希望添加漂亮的页眉和页脚。

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-7.cs
Imports IronPdf
Imports IronSoftware.Drawing

Module Module1
    Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.CssMediaType = Rendering.PdfCssMediaType.Print
        renderer.RenderingOptions.PrintHtmlBackgrounds = False
        renderer.RenderingOptions.PaperOrientation = Rendering.PdfPaperOrientation.Landscape
        renderer.RenderingOptions.WaitFor.RenderDelay(150)
        renderer.RenderingOptions.TextHeader.CenterText = "VB.NET PDF Slideshow"
        renderer.RenderingOptions.TextHeader.DrawDividerLine = True
        renderer.RenderingOptions.TextHeader.FontSize = "13"
        renderer.RenderingOptions.TextFooter.RightText = "page {page} of {total-pages}"
        renderer.RenderingOptions.TextFooter.Font = FontTypes.Arial
        renderer.RenderingOptions.TextFooter.FontSize = "9"
        Dim document = renderer.RenderHtmlFileAsPdf("..\..\slideshow\index.html")
        document.SaveAs("Html5WithHeader.pdf")
        System.Diagnostics.Process.Start("Html5WithHeader.pdf")
    End Sub
End Module
VB.NET

如所示,支持逻辑页眉和页脚。 您还可以添加基于HTML的页眉和页脚,如下所述在线查阅 VB.NET PDF 开发人员 API 参考资料.

您可以下载并探索该 "VB.NET HTML to PDF "项目的源代码作为 VB.NET Visual Studio 项目。


4. 创建包含动态内容的PDF:2种方法

历史上,对于软件工程师来说,PDF“模板化”一直是一项艰巨的任务。 将内容盖章到PDF模板中很少有效。 这是因为每个案例或报告将包含不同类型和长度的内容。 幸运的是,HTML在处理动态数据方面表现出色。

对此,我们有两种解决方案:

  1. 使用 .NET 将 HTML 的字符串模板转换为 PDF
  2. 将内容渲染为 ASP.NET 网页,然后将页面渲染为 PDF

4.1 方法 1 - ASP.NET - 使用 VB.NET Web Forms 将 ASPX 转换为 PDF

幸运的是,这个解决方案出奇的简单。 任何类型的 .NET Web 表单(包括剃须刀)可以在VB.NET代码背后的Page_Load子程序中使用这段VB.NET代码将其渲染成PDF文档。

PDF文档可以设置内容布置以在浏览器中显示,或者作为文件下载。

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-8.cs
Imports IronPdf

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    Dim PdfOptions = New IronPdf.ChromePdfRenderOptions()
    IronPdf.AspxToPdf.RenderThisPageAsPDF(AspxToPdf.FileBehavior.Attachment, "MyPdf.pdf", PdfOptions)
End Sub
VB.NET

4.2 方法2 - 使用字符串模板的HTML转PDF

要创建包含实例特定数据的动态PDF文档,我们只需创建一个HTML字符串以匹配我们希望渲染为PDF的数据。

这可能是VB.NET中HTML转PDF解决方案的最大优势——通过动态创建HTML“即时”轻松直观地创建动态PDF文档和报告的能力。

VB.NET 中最简单的版本是 String.Format 方法。

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-9.cs
Imports IronPdf

Module Module1
    Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim Html = "Hello {0}"
        String.Format(Html, "World")
        Dim document = renderer.RenderHtmlAsPdf(Html)
        document.SaveAs("HtmlTemplate.pdf")
        System.Diagnostics.Process.Start("HtmlTemplate.pdf")
    End Sub
End Module
VB.NET

随着PDF文件变得更加复杂,字符串也会变得更加复杂。 我们可能会考虑使用字符串构建器,甚至是像HandleBars.Net或Razor这样的模板框架。 https://github.com/rexm/Handlebars.Net


5. 使用 VB.NET 编辑 PDF 文件

IronPDF for VB.NET 也允许编辑、加密、加水印或甚至将 PDF 文档转换回纯文本:

5.1.用 VB 将多个 PDF 文件合并为一个文档

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-10.cs
Dim pdfs = New List(Of PdfDocument)
pdfs.Add(PdfDocument.FromFile("A.pdf"))
pdfs.Add(PdfDocument.FromFile("B.pdf"))
pdfs.Add(PdfDocument.FromFile("C.pdf"))
Dim mergedPdf As PdfDocument = PdfDocument.Merge(pdfs)
mergedPdf.SaveAs("merged.pdf")
mergedPdf.Dispose()
For Each pdf As PdfDocument In pdfs
    pdf.Dispose()
Next
VB.NET

5.2.为 PDF 添加封面页

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-11.cs
pdf.PrependPdf(renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"))
VB.NET

5.3.从 PDF 中删除最后一页

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-12.cs
pdf.RemovePage((pdf.PageCount - 1))
VB.NET

5.4.使用 128 位加密技术为 PDF 加密

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-13.cs
// Save with a strong encryption password.
pdf.Password = "my.secure.password";
pdf.SaveAs("secured.pdf")
VB.NET

5.5.用 VB 在页面上添加 HTML 内容

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-14.cs
Imports IronPdf
Imports IronPdf.Editing

Module Module1
    Sub Main()
        Dim renderer = New ChromePdfRenderer
        Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
        Dim stamp = New HtmlStamper()
        stamp.Html = "<h2>Completed</h2>"
        stamp.Opacity = 50
        stamp.Rotation = -45
        stamp.VerticalAlignment = VerticalAlignment.Top
        stamp.VerticalOffset = New Length(10)
        pdf.ApplyStamp(stamp)
        pdf.SaveAs("C:\Path\To\Stamped.pdf")
    End Sub
End Module
VB.NET

5.6. 使用HTML向PDF添加分页符

使用HTML和CSS是最简单的方法。

:path=/static-assets/pdf/content-code-examples/how-to/vb-net-pdf-15.cs
<div style='page-break-after: always;'>&nbsp;</div>
HTML

6. 更多 .NET PDF 教程

您可能也会感兴趣:

结论

在本教程中,我们发现了使用 VB.NET 作为我们选择的编程语言,实现 VB.NET 到 PDF 转换的6种方法。

  • 将 HTML 字符串转换为 PDF
  • 使用 HTML 字符串在 VB.NET 中创建 PDF
  • 将现有的URL渲染为PDF文件
  • 从HTML文件生成PDF
  • 在 VB.NET 中的 HTML 模板制作及转换为动态 PDFs
  • 将包含实时数据的ASP.NET页面,例如ASPX转换为PDF文件

    对于每个,我们都使用了流行的IronPDF.VB.NET 库使我们能够在 .NET 项目中将 HTML 直接转化为 PDF 文档


    教程快速访问

    下载本教程的源代码

    本教程的完整免费 VB.NET HTML 转 PDF 源代码可作为压缩的 Visual Studio 项目文件下载。

    下载

    在 GitHub 上探索此教程

    您可能还会对我们在 GitHub 上提供的大量 VB.NET PDF 生成和操作示例库感兴趣。探索源代码是最快的学习方式,而 Github 则是在线学习的最佳途径。 希望这些示例能帮助您在 VB 项目中掌握 PDF 相关功能。

    用 VB.NET 和 C# 源码在 ASP.NET 中创建 PDFS 使用 IronPDF 在 VB.NET 中将 HTML 渲染成 PDF 的简单 Hello World 项目 用 VB.NET 深入探索 HTML 转 PDF

    下载 C# PDF Quickstart guide

    为了使您在.NET应用程序中开发 PDF 更容易,我们将快速入门指南编译成 PDF 文档。该 "小抄 "提供了在 C# 和 VB.NET 中生成和编辑 PDF 的常用函数和示例的快速访问方法--这将节省您在.NET 项目中开始使用 IronPDF 的时间。

    下载

    查看应用程序接口参考

    探索 IronPDF 的 API 参考,其中概述了 IronPDF 的所有功能、命名空间、类、方法字段和枚举的详细信息。

    查看应用程序接口参考