可视化报告生成器FastReport VCL功能指南:从Delphi / C ++ Builder / Lazarus创建HTML / HTML5分层文件
报表生成器FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。
近日,FastReport VCL更新至v6.7,在新版本中,添加了对最新版本IDE的支持,简化了用于付款标准的条形码的创建,新增从预览窗口直接编辑RichView的功能,同时修复了多个Bug问题。欢迎下载体验。(点击下方按钮下载)
"如何从Delphi中以HTML文件格式保存?"、"如何从Delphi中创建HTML 5文件?"、"如何从Lazarus中创建HTML 5文件?" - 这些问题经常在开发人员中出现。
HTML文件是用超文本标记语言(HTML)编写的。它的作用是创建相对简单但设计精美的文档。从一开始就谈论HTML是没有意义的。但值得纠结的是一些功能--HTML可以是不同的--有表格和分层布局,HTML 4和HTML 5标准。
由于HTML5,网页已经学会了在用户的浏览器中本地存储数据,这允许你拒绝HTTP cookie。内容的传递更快、更安全。HTML5还简化了跨浏览器的过程,增加了对矢量图形的支持,无需Silverlight或Flash等第三方程序。
从Delphi或Lazarus生成HTML的选项有哪些?
①如果你只需要显示一个页面一次,而且格式不是很重要,那么最好的选择是使用标签--前提是至少在你的脑海中已经建立了整个生成的HTML文件的模型。,
- 太简单了! 甚至可以使用 writeln(...)! 这种方法的优点是,你可以立即将文件上传到FTP,它将出现在网站上,任何浏览器都能打开它。但也有缺点--这个文件不是用来打印的(!),而且每个浏览器的显示方式都不一样,甚至同一个浏览器的屏幕分辨率也不一样。
②专门的库。delphihtmlcomponents有一个可视化编辑器,并宣称完全支持HTML 4.1和CSS 3.但目前来看在HiDPI上并不好看。
③使用FastReport VCL将Delphi中的内容立即保存为HTML。我们创建任何种类和大小的文档,多页,多尺寸,我们可以立即看到并评估文档,然后再以HTML格式保存。还有大量的附加对象--条形码、地图、图片、图形基元。现在你可以把它发送到HTML/HTML5 Layered!
保存时HTML和HTML5的区别
我们到底应该用Delphi创建哪种HTML?表格式还是分层式?HTML还是HTML5?让我们仔细看看它们的设置。
此时,我们应该已经组装好了一个带有导出组件的项目。启动、查看并从预览中保存它。现在是时候从预览中调用导出并选择所需的格式了。
导出参数足够丰富。我们可以保存整个文档,而不是只保存一个HTML页面。它将包括样式、同一文件夹中的附加文件、导航器等很多很多。
这里的特殊之处在于,导出本身可以由多个文件组成,它支持图片,并将其保存为不同的文件,但外观和文件大小非常依赖于报表模板。
下面是每种格式的设置,可以进行比较。
FastReport工具可以帮助我们选择要导出文档的哪些页面、特定页面或范围。导出设置包括:
- 样式--导出样式。当然,禁用此选项会加快导出过程,但会使文件的外观恶化。
- All in one folder - 将所有附加文件与主文件 "index.html "保存在同一个文件夹中。
- 页面导航--将创建一个特殊的导航器,以加快页面导航速度。
- 固定宽度--当调整视图窗口大小时,阻止自动改变表格宽度。
- 多页当选择该选项时,每个页面将被写入一个单独的文件。
- 背景导出分配给报表页面的背景图形对象。
我们还可以指定文件的发送位置--保存在本地存储或上传到云端或FTP,或者以电子邮件的形式发送。
最后,导出后打开--导出后生成的文件将立即被默认的HTML浏览器打开。设置完毕后,我们终于可以按 "确定 "按钮了。准备好了!
好了,这里我们已经介绍了如何从Delphi中保存一个HTML / HTML5分层文件。
如何使用Delphi代码保存HTML?
Export to HTML
procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxHTMLExport1.PageNumbers := '2-3'; {Set whether to export styles} frxHTMLExport1.ExportStyles := True; { Set whether to export images to the same directory with the resulting html file, or place the images in a separate directory} frxHTMLExport1.PicsInSameFolder := False; {Set whether to add navigation buttons to the resulting html file} frxHTMLExport1.Navigator := False; {Set whether to export with a fixed column width or whether the report will be displayed according to the browser window width} frxHTMLExport1.FixedWidth := True; {Set whether to export each page to a separate html file} frxHTMLExport1.Multipage := False; {Set whether to export the background of the generated report} frxHTMLExport1.Background := False; {Set whether to export pictures} frxHTMLExport1.ExportPictures := True; {Set in which format to export pictures} //uses frxImageConverter; // TfrxPictureType = (gpPNG, gpBMP, gpJPG {$IFNDEF FPC}, gpGIF, gpEMF, gpWMF{$ENDIF}) frxHTMLExport1.PictureType := gpPNG; {Set whether to open the resulting file after export} frxHTMLExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxHTMLExport1.ShowProgress := False; {Set whether to display the export filter settings dialog box} frxHTMLExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxHTMLExport1.FileName := 'C:\Output\test.html'; {Export the report} frxReport1.Export(frxHTMLExport1); end;
Export to HTML (Layered)
procedure TForm1.Button2Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxHTML5DivExport1.PageNumbers := '2-3'; {Set whether to export styles} frxHTML5DivExport1.EmbeddedCSS := True; {Set whether to convert all images in accordance with PictureFormat:} {if the image in the report is in BMP format and the PictureFormat is PNG, then BMP will be saved in PNG format} frxHTML5DivExport1.UnifiedPictures := True; {Set whether to format the HTML source text (increases the size of the resulting file)} frxHTML5DivExport1.Formatted := False; {Set whether to export pictures} frxHTML5DivExport1.EmbeddedPictures := True; {Set whether to export each page to a separate HTML5Div file} frxHTML5DivExport1.Multipage := False; {Set whether to add navigation buttons to the resulting HTML5Div file} frxHTML5DivExport1.Navigation := False; {Set in which format to export pictures} //uses frxExportHelpers; // TfrxPictureFormat = (pfPNG, {$IFNDEF FPC}pfEMF,{$ENDIF} pfBMP, pfJPG);) frxHTML5DivExport1.PictureFormat := pfPNG; {Set whether to open the resulting file after export} frxHTML5DivExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxHTML5DivExport1.ShowProgress := False; {Set whether to display the export filter settings dialog box} frxHTML5DivExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxHTML5DivExport1.FileName := 'C:\Output\test.html'; {Export the report} frxReport1.Export(frxHTML5DivExport1); end;
让我们看一下结果HTML文件之间的区别。
这些是已保存的HTML和HTML5文件的属性。这些文件的大小是显而易见的。导出为HTML格式的文档基本上比HTML5小2倍。现在让我们比较浏览器中保存的文档的外观:
普通的HTML文件不会显示诸如框架及其阴影框阴影之类的元素。
如果使文档更复杂,则这种区别将更加明显。让我提醒您,此导出不只支持不同的标准-我们正在处理创建HTML的不同方法。在第一种情况下,使用的是固定表-当然,这个示例更面向表。例如,如果我们需要带有插图的报告,则结果将大不相同。
让我们看一下在FastReport报表中使用地图的示例。区别很明显!
让我们看看HTML页面的另一面,并出于说明目的查看其代码。
还想要更多吗?您可以点击阅读【FastReport 报表2020最新资源盘点】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入FastReport技术交流群(783996712),我们很高兴为您提供查询和咨询。