使用FastReport .Net 1分钟学会如何用.NET Core在Raspberry PI上制作PDF

Raspberry PI是带有ARM处理器的微型单板计算机。用程序代码创建对象不是生成文档的唯一方法,可以使用FastReport .NET附带的Designer.exe模板编辑器。

报表生成器

Raspberry PI是带有ARM处理器的微型单板计算机。该微型计算机通常用作教育平台或用于嵌入式解决方案的开发。

使用FastReport .Net 1分钟学会如何用.NET Core在Raspberry PI上制作PDF

在实验中,使用了带有1GB RAM的Raspberry PI 3B板和安装了带有桌面操作系统的Linux Raspbian Buster。

尽管它很小,使用的是一台功能强大的计算机。尝试在其上安装. net核心框架,并编写一个简单的c#应用程序来生成PDF文档。

首先,我们需要通过SSH连接到树莓,或者在桌面打开终端应用程序,如果你把板连接到显示器和键盘。当然,板必须连接到互联网上安装我们需要的组件。

在PATH环境变量中将路径添加到.NET Core文件夹,并创建DOTNET_ROOT变量:

$ export DOTNET_ROOT=$HOME/dotnet$ export PATH=$PATH:$HOME/dotnet

最后几行最好添加到用户配置文件配置文件中: .bash_profile, .bashrc, .kshrc, .profile, .zshrc, .zprofile。可以通过以下命令验证.NET Core SDK的正确安装:

$ dotnet --info.NET Core SDK (reflecting any global.json): Version: 3.1.300 Commit: b2475c1295Runtime Environment: OS Name: raspbian OS Version: 10 OS Platform: Linux RID: linux-arm Base Path: /home/pi/dotnet/sdk/3.1.300/Host (useful for support): Version: 3.1.4 Commit: 0c2e69caa6.NET Core SDKs installed: 3.1.300 [/home/pi/dotnet/sdk].NET Core runtimes installed: Microsoft.AspNetCore.App 3.1.4 [/home/pi/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 3.1.4 [/home/pi/dotnet/shared/Microsoft.NETCore.App]To install additional .NET Core runtimes or SDKs: https://aka.ms/dotnet-download

为了进行进一步的工作,您需要安装其他软件包(其余的所有软件包已随带桌面的Linux Raspbian Buster一起安装):

$ sudo apt-get install libgdiplus$ sudo wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb$ sudo apt-get install -y ttf-mscorefonts-installer_3.6_all.deb

现在,可以创建我们的应用程序。运行命令:

$ dotnet new console -o testpdf

我们看到控制台应用程序的模板,在testpdf文件夹中带有文件testpdf.csproj和Program.cs。替换testpdf.csproj文件的代码:

  Exe netcoreapp3.1     

文件包含指向Nuget FastReport.Core和FastReport.Compat包的链接。它们将在构建过程中下载并放置在 .nuget / packages中。

Program.cs文件应替换为以下代码:

using System;using FastReport;using FastReport.Export.Pdf;using FastReport.Utils;namespace testpdf{class Program { static void Main() { Console.WriteLine("Test FastReport Core"); // create report object using Report report = new Report(); // create page using ReportPage page = new ReportPage(); // add page in report report.Pages.Add(page); // create band page.ReportTitle = new ReportTitleBand() { Height = Units.Centimeters * 10 }; // create text object placed on band using TextObject text = new TextObject() { Left = Units.Centimeters * 7, Top = Units.Centimeters * 5, Font = new System.Drawing.Font("Arial", 24), CanGrow = true, AutoWidth = true, Text = "Hello Raspberry!", Parent = page.ReportTitle }; // make the document report.Prepare(); // save the document as PDF file using PDFExport pdf = new PDFExport(); report.Export(pdf, "file.pdf"); } }}

该代码创建一个报表实例,在其中添加页面,并在其上添加一个带。然后在“左”和“上”坐标处创建一个文本对象。CanGrow和AutoWidth属性允许对象根据文本的大小自动计算高度和宽度。

用程序代码创建对象不是生成文档的唯一方法。可以使用FastReport .NET附带的Designer.exe模板编辑器。然后可以使用Report.Load方法加载由编辑器生成的扩展名为* .frx的文件。在xml模板中,您可以指定到用户数据,变量的绑定,使用内置和用户定义的函数。您可以在官方网站上了解有关FastReport .NET功能的更多信息。

准备文档后,将其保存为PDF文件。代码中使用的所有对象均包含许多影响其在文档中行为的属性。

运行程序:

$ dotnet run

如果一切完成,并且安装了所有必需的软件包,将获得file.pdf。否则,需要阅读错误内容并消除错误。生成的PDF文件完全符合该标准,包含文本和嵌入字体。可以选择文本并将其复制到另一个文档。

使用FastReport .Net 1分钟学会如何用.NET Core在Raspberry PI上制作PDF

在页面的左上角有文本,指示我们使用的是FastReport .NET Core演示版。演示版本中的最大页面数限制为五个。FastReport .NET的商业版本不包含这些限制。

有一种方法可以完全免费地获得没有DEMO VERSION标签的类似PDF文件。您可以使用FastReport开源产品。

让我们更改csproj文件和ItemGroup部分:

<ItemGroup> <PackageReference Include=”FastReport.Compat” Version=”2020.3.2″ /> <PackageReference Include=”FastReport.OpenSource” Version=”2020.3.1″ /> <PackageReference Include=”FastReport.OpenSource.Export.PdfSimple” Version=”2020.3.1″ /> </ItemGroup>

需要对Program.cs文件进行如下更改:

using System;using FastReport;using FastReport.Export.PdfSimple;using FastReport.Utils;namespace testpdf{ class Program { static void Main() { Console.WriteLine("Test FastReport Open Source"); // ... // same code here ... // ... // save the document as PDF file using PDFSimpleExport pdf = new PDFSimpleExport(); report.Export(pdf, "file.pdf"); } }}

然后,使用dotnet run命令运行该程序,并获得一个没有“演示版本”标签和对页数有任何限制的PDF。

不幸的是,开放源代码版本有一个很大的缺点:PDF文件中包含图像而不是文本。复制此类文本将不起作用,文件大小将大大增加。对于简单的应用程序,这应该足够了。


惊喜618!Fastreport在线购买价更低!赶紧加入购物清单吧!

还想要更多吗可以点击阅读【FastReport 报表2019最新资源盘点】查找需要的教程资源。如果您有任何疑问或需求,请随时加入FastReport技术交流群(),我们很高兴为您提供查询和咨询

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月1日
下一篇 2020年5月1日

相关推荐

发表回复

登录后才能评论