ActiveReports jelentés kimenete PDF-fájlként
Működési környezet
- Windows
-
- Windows 10 Pro 22H2 esetén
- Visual Studio
-
- Visual Studio 2022 közösségi kiadás
- NET-hez készült ActiveReports
-
- ActiveReports for .NET 16.0J
Előfeltételek
- Windows
-
- Windows 8.1
- Windows 10 esetén
- Windows 11 esetén
- Windows Server 2012 esetén
- Windows Server 2012 R2
- Windows Server 2016 esetén
- Windows Server 2019 esetén
- Windows Server 2022 esetén
- Visual Studio
-
- Visual Studio 2017
- Visual Studio 2019
- Visual Studio 2022
- NET-keretrendszer
-
- NET-keretrendszer 4.6.2-es verziója
- NET-keretrendszer 4.7-es verziója
- NET-keretrendszer 4.8-as verziója
- .HÁLÓ
-
- .NET Core 3.1
- .NET 5
- .NET 6
- NET-hez készült ActiveReports
-
- ActiveReports for .NET 16.0J
Hogyan lehet PDF-fájlba exportálni
Ha a felhasználó PDF-fájlként szeretne jelentést készíteni, a leggyorsabb módja annak, hogy a jelentést megtekinthesse a megtekintőben. A jelentések megjelenítése mellett a megjelenítő rendelkezik olyan fájlok nyomtatására és kimenetére is, mint a PDF, így ha megjeleníti a megtekintőt, megkérheti a felhasználót, hogy adja ki a PDF-fájlt.
Bizonyos esetekben azonban előfordulhat, hogy nem akarja zavarni a felhasználót, vagy szisztematikusan szeretné irányítani a PDF-fájlt. Ez a szakasz azt ismerteti, hogyan lehet programozott módon PDF-fájlt közvetlenül egy jelentésből exportálni.
PDF-fájlok kimeneti módszerei és korlátozásai
A PDF-fájlok programozott kimenetének számos módja van, de nem mindegyik elfogadható. Ez az ActiveReports verziójától, a platformtól, a keretrendszertől és az elvégzett jelentés típusától függően változik. Az ActiveReports 16-ban például a szakasz- és oldaljelentések kimenete programozott módon eltérő. Erre példa található a hivatalos oldalon is.
Ezért íme néhány példa a programozott PDF-kimenetre, amelyet referenciaként használhat a projektjének megfelelő kiválasztásához.
A mintajelentés
Az új projekt sablonjában található jelentésfájl üres, ezért a hivatalos mintajelentést fogjuk használni. Íme néhány javaslat, ezért kérjük, töltse le őket az alábbi webhelyek egyikéről.
- ActiveReports-becslés-minta
- GrapeCity ActiveReports (GitHub) ( Minden mintaprojektben lehet jelentésfájl)
Ebben az esetben a következő mintajelentést fogjuk használni.
- Oldaljelentés : Estimate_page_ipa.rdlx
- Szakaszjelentés: Invoice.rpx (a WebSample16 mintaprojekt része)
PDF-fájlok megjelenítése és létrehozása (oldaljelentések/RDL-jelentések)
Van egy "exportálási szűrő" a PDF-ek kiadásához, de a 16-os verzióban csak szakaszjelentésekhez használható.
Ezért az oldaljelentéseket/RDL-jelentéseket a fenti oldalon leírtak szerint a "Rajzkiterjesztéssel" kell létrehozni.
Először is létrehozok egy projektet, de ezúttal egy egyszerű konzolalkalmazással készítem el. Ugyanolyan könnyen alkalmazható az asztali és webes verziókra, mint a webes verzióra.
Projekt létrehozásakor válassza a Console App lehetőséget.
A projekt létrehozása után adja hozzá a szükséges csomagokat.
A következőket fogja hozzáadni: Kérjük, ne szerezze be a legújabb verziót, hanem használja az alább leírt verziót.
Úgy tűnik, hogy egyes csomagkombinációk nem működnek megfelelően a legújabb verzióval.
Megjelenik egy figyelmeztető jel, de figyelmen kívül hagyja, mert a függőségek nem egyeznek.
Fennáll azonban annak a lehetősége, hogy a jövőben a verziófrissítésekkel változni fog, ezért kérjük, minden alkalommal módosítsa.
GrapeCity.Documents.Imaging
GrapeCity.Documents.Pdf
és PDF-ben való megjelenítéshez szükségesek.
- GrapeCity.ActiveReports.Export.Pdf (16.4.0)
- GrapeCity.Documents.Imaging (6.0.3)
- GrapeCity.Dokumentumok.Pdf (6.0.3)
Vegyen fel egy jelentésfájlt a projektbe. A hely bárhol lehet, de ezúttal létrehozok Reports
egy mappát, és beteszem oda.
Ez az elhelyezési hely hatással van a később megadott elérési útra.
Ezután nyissa meg a hozzáadott jelentés tulajdonságait.
Állítsa a buildműveletet Beágyazott erőforrás értékre. Ez azt jelenti, hogy az erőforrást be kell ágyazni egy EXE-be (DLL). A jelentés ugyanúgy betöltődik az asztalra, mint az internetre.
Ezután írja be a kódot a jelentés betöltéséhez és PDF-be nyomtatásához. Mivel ez egy konzolalkalmazás, a Program.cs ahogy van, de ha asztali, akkor egy gombeseményben stb., Ha pedig ASP.NET, akkor a közzétételkor a feldolgozás helyén kell leírni.
// レポートファイルがあるパス
var reportPath = "ConsoleApp1.Reports.Estimate_page_ipa.rdlx";
// 埋め込みリソースを Stream をして取り出す
var stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(reportPath);
if (stream == null) return;
// ページレポートに変換します
using var sr = new StreamReader(stream);
var pageReport = new GrapeCity.ActiveReports.PageReport(sr);
// PDF 描画拡張を定義します
var pdfRenderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
// メモリストリームとして出力する定義です
var outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
// レポートを PDF にレンダリングします
pageReport.Document.Render(pdfRenderingExtension, outputProvider);
// Stream に変換します
var ps = outputProvider.GetPrimaryStream();
var outputStream = ps.OpenStream();
Nem fogom részletesen elmagyarázni, hogy milyen feldolgozásról van szó, mert a kód megjegyzéseiben van írva.
A legfontosabb a jelentésfájl helyének megadása az első sorban.
A formátum a <アセンブリ名>.<レポートファイルのパス>
következő, és minden útvonal-elválasztó pont.
Az utolsó a Stream, ezért kérjük, konvertálja PDF-be a feldolgozási tartalomnak megfelelően.
Ha például helyi fájlként szeretné menteni, adja hozzá a következőket.
// ファイルにストリームを書き出します
using var fs = new FileStream("Output.pdf", FileMode.Create);
outputStream.CopyTo(fs);
Ha ASP.NET szeretné letölteni, adja hozzá a következőket.
return File(outputStream, "application/pdf", "Output.pdf");
Próbálja meg megnyitni a kimeneti PDF-fájlt, és ellenőrizze, hogy rendben van-e.
PDF kimenete exportálási szűrők használatával (szakaszjelentések)
Használja a szakaszjelentésekhez elérhető PDF-exportálási szűrőt.
A konzolprojektben ugyanúgy jön létre, mint az oldaljelentéseknél. Az itt létrehozott kód és beállítások más projektekre is alkalmazhatók.
A projekt létrehozása után adja hozzá a szükséges csomagokat. Ezúttal exportálási szűrővel fogunk kiadni, így csak egyet adunk hozzá.
- GrapeCity.ActiveReports.Export.Pdf (16.4.0)
Vegyen fel egy jelentésfájlt a projektbe. A hely bárhol lehet, de ezúttal létrehozok Reports
egy mappát, és beteszem oda.
Ez az elhelyezési hely hatással van a később megadott elérési útra.
Ezután nyissa meg a hozzáadott jelentés tulajdonságait.
Állítsa a buildműveletet Beágyazott erőforrás értékre. Ez azt jelenti, hogy az erőforrást be kell ágyazni egy EXE-be (DLL). A jelentés ugyanúgy betöltődik az asztalra, mint az internetre.
Ezután írja be a kódot a jelentés betöltéséhez és PDF-be nyomtatásához. Mivel ez egy konzolalkalmazás, a Program.cs ahogy van, de ha asztali, akkor egy gombeseményben stb., Ha pedig ASP.NET, akkor a közzétételkor a feldolgozás helyén kell leírni.
// レポートファイルがあるパス
var reportPath = "ConsoleApp1.Reports.Invoice.rpx";
// 埋め込みリソースを Stream をして取り出す
var stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(reportPath);
if (stream == null) return;
// Stream を XML として読み込めるようにします
var xr = System.Xml.XmlReader.Create(stream);
// セクションレポートとして読み込みます
var sectionReport = new GrapeCity.ActiveReports.SectionReport();
sectionReport.LoadLayout(xr);
sectionReport.Run();
// PDF のエクスポートフィルターを作成します
var pdfExport = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
// メモリストリームに PDF の情報を書き出します
var outputStream = new System.IO.MemoryStream();
pdfExport.Export(sectionReport.Document, outputStream);
outputStream.Seek(0, SeekOrigin.Begin);
Nem fogom részletesen elmagyarázni, hogy milyen feldolgozásról van szó, mert a kód megjegyzéseiben van írva.
A legfontosabb a jelentésfájl helyének megadása az első sorban.
A formátum a <アセンブリ名>.<レポートファイルのパス>
következő, és minden útvonal-elválasztó pont.
Az utolsó a Stream, ezért kérjük, konvertálja PDF-be a feldolgozási tartalomnak megfelelően.
Ha például helyi fájlként szeretné menteni, adja hozzá a következőket.
// ファイルにストリームを書き出します
using var fs = new FileStream("Output.pdf", FileMode.Create);
outputStream.CopyTo(fs);
Ha ASP.NET szeretné letölteni, adja hozzá a következőket.
return File(outputStream, "application/pdf", "Output.pdf");
Próbálja meg megnyitni a kimeneti PDF-fájlt, és ellenőrizze, hogy rendben van-e.