ActiveReports atskaites izvade PDF faila formātā

Lapa atjaunota :
Lapas izveides datums :

Darbības vide

Windows
  • Windows 10 Pro 22H2
Visual Studio
  • Visual Studio 2022 kopienas izdevums
ActiveReports .NET ierīcēm
  • ActiveReports programmatūrai .NET 16.0J

Priekšnoteikumi

Windows
  • Windows 8.1
  • Operētājsistēmā Windows 10
  • Operētājsistēmā Windows 11
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022
Visual Studio
  • Visual Studio 2017
  • Visual Studio 2019
  • Visual Studio 2022
.NET Framework
  • NET Framework 4.6.2
  • NET Framework 4.7
  • NET Framework 4.8
.NETO
  • .NET Core 3.1
  • .NET 5
  • .NET 6
ActiveReports .NET ierīcēm
  • ActiveReports programmatūrai .NET 16.0J

Kā veikt izvadi uz PDF failu

Ja lietotājs vēlas, lai atskaite tiktu veidota kā PDF fails, ātrākais veids, kā to nodrošināt, ir skatīt atskaiti skatītājā. Papildus atskaišu parādīšanai skatītājam ir funkcija drukāt un izvadīt failus, piemēram, PDF, tādēļ, ja parādāt skatītāju, varat lūgt lietotājam izvadīt PDF failu.

Tomēr dažos gadījumos, iespējams, nevēlaties traucēt lietotājam vai arī sistemātiski virzīt PDF failu. Šajā sadaļā aprakstīts, kā programmiski izvadīt PDF failu tieši no atskaites.

PDF failu izvades metodes un ierobežojumi

Ir vairāki veidi, kā programmiski izvadīt PDF failus, taču ne visi no tiem ir pieņemami. Tas atšķiras atkarībā no ActiveReports versijas, platformas, struktūras un pārskata veida, ko tā veic. Piemēram, ActiveReports 16 sadaļu un lappušu atskaites programmiski tiek izvadītas atšķirīgi. Piemērs tam ir atrodams arī oficiālajā lapā.

Šī iemesla dēļ šeit ir daži programmatiskas PDF izvades piemēri, kurus varat izmantot kā atsauci, lai atrastu savam projektam piemērotāko.

Par atskaites paraugu

Jaunā projekta veidnē iekļautais ziņojuma fails ir tukšs, tāpēc mēs izmantosim oficiālo parauga ziņojumu. Šeit ir daži ieteikumi, tāpēc, lūdzu, lejupielādējiet tos no kādas no šīm vietnēm.

Šajā gadījumā mēs izmantosim šo parauga pārskatu.

  • Lapas ziņojums : Estimate_page_ipa.rdlx
  • Sadaļas atskaite: Invoice.rpx (iekļauta WebSample16 parauga projektā)

Atveidot un ģenerēt PDF failus (lapu atskaites/RDL atskaites)

PDF failu izvadīšanai ir "eksporta filtrs", bet 16. versijā to var izmantot tikai sadaļu atskaitēm.

Tāpēc lapu pārskati/RDL atskaites ir jāģenerē, izmantojot "Zīmēšanas paplašinājumu", kā aprakstīts iepriekšējā lapā.

Pirmkārt, es izveidošu projektu, bet šoreiz es to darīšu ar vienkāršu konsoles lietojumprogrammu. To ir tikpat viegli lietot darbvirsmas un tīmekļa versijās kā tīmekļa versijā.

Kad veidojat projektu, atlasiet Konsoles lietotne.

Kad esat izveidojis projektu, pievienojiet nepieciešamās pakotnes.

Lūk, ko jūs pievienosit: Lūdzu, nesaņemiet jaunāko versiju, bet izmantojiet tālāk aprakstīto versiju. Šķiet, ka dažas paketes kombinācijas nedarbojas pareizi ar jaunāko versiju. Tiek parādīta brīdinājuma zīme, bet ignorējiet to, jo atkarības nesakrīt. Tomēr pastāv iespēja, ka nākotnē tas mainīsies līdz ar versiju jauninājumiem, tāpēc, lūdzu, pielāgojiet to katru reizi. GrapeCity.Documents.Imaging GrapeCity.Documents.Pdf un tie ir jāatveido PDF formātā.

  • GrapeCity.ActiveReports.Export.Pdf (16.4.0)
  • GrapeCity.Documents.Imaging (6.0.3)
  • GrapeCity.Documents.Pdf (6.0.3)

Pievienojiet projektam atskaites failu. Atrašanās vieta var būt jebkur, bet šoreiz es Reports izveidoju mapi un ievietoju to tur. Šī izvietojuma atrašanās vieta ietekmē ceļu, ko norādāt vēlāk.

Pēc tam atveriet pievienotās atskaites rekvizītus.

Iestatiet būvējuma darbību uz iegulto resursu. Tas nozīmē resursa iegulšanu EXE (DLL). Atskaite tiek unikāli ielādēta darbvirsmā tāpat kā tīmeklī.

Pēc tam uzrakstiet kodu, lai ielādētu atskaiti, un izdrukājiet to PDF failā. Tā kā tā ir konsoles lietojumprogramma, tā ir jāapraksta programmā.cs kā tas ir, bet, ja tā ir darbvirsma, tā jāapraksta pogas notikumā utt., Un, ja tā ir ASP.NET, tā jāapraksta vietā, kur tā tiek apstrādāta, kad tā tiek publicēta.

// レポートファイルがあるパス
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();

Es detalizēti nepaskaidrošu, kāda veida apstrāde tā ir, jo tā ir rakstīta koda komentāros. Galvenais ir norādīt ziņojuma faila atrašanās vietu pirmajā rindā. Formāts ir šāds <アセンブリ名>.<レポートファイルのパス> , un visi ceļu atdalītāji ir periodi.

Pēdējais ir Stream, tāpēc, lūdzu, pārveidojiet to PDF formātā atbilstoši apstrādes saturam.

Piemēram, ja vēlaties to saglabāt kā lokālu failu, pievienojiet tālāk norādīto informāciju.

// ファイルにストリームを書き出します
using var fs = new FileStream("Output.pdf", FileMode.Create);
outputStream.CopyTo(fs);

Ja vēlaties to lejupielādēt ar ASP.NET, pievienojiet šādu informāciju.

return File(outputStream, "application/pdf", "Output.pdf");

Mēģiniet atvērt izvades PDF failu, lai redzētu, vai tas ir kārtībā.

PDF faila izvade, izmantojot eksportēšanas filtrus (sadaļu atskaites)

Izmantojiet PDF eksportēšanas filtru, kas pieejams sadaļu atskaitēm.

Tas tiek izveidots konsoles projektā tāpat kā lapu pārskatiem. Šeit izveidoto kodu un iestatījumus var piemērot citiem projektiem.

Kad esat izveidojis projektu, pievienojiet nepieciešamās pakotnes. Šoreiz mēs izvadīsim ar eksporta filtru, tāpēc mēs pievienosim tikai vienu.

  • GrapeCity.ActiveReports.Export.Pdf (16.4.0)

Pievienojiet projektam atskaites failu. Atrašanās vieta var būt jebkur, bet šoreiz es Reports izveidoju mapi un ievietoju to tur. Šī izvietojuma atrašanās vieta ietekmē ceļu, ko norādāt vēlāk.

Pēc tam atveriet pievienotās atskaites rekvizītus.

Iestatiet būvējuma darbību uz iegulto resursu. Tas nozīmē resursa iegulšanu EXE (DLL). Atskaite tiek unikāli ielādēta darbvirsmā tāpat kā tīmeklī.

Pēc tam uzrakstiet kodu, lai ielādētu atskaiti, un izdrukājiet to PDF failā. Tā kā tā ir konsoles lietojumprogramma, tā ir jāapraksta programmā.cs kā tas ir, bet, ja tā ir darbvirsma, tā jāapraksta pogas notikumā utt., Un, ja tā ir ASP.NET, tā jāapraksta vietā, kur tā tiek apstrādāta, kad tā tiek publicēta.

// レポートファイルがあるパス
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);

Es detalizēti nepaskaidrošu, kāda veida apstrāde tā ir, jo tā ir rakstīta koda komentāros. Galvenais ir norādīt ziņojuma faila atrašanās vietu pirmajā rindā. Formāts ir šāds <アセンブリ名>.<レポートファイルのパス> , un visi ceļu atdalītāji ir periodi.

Pēdējais ir Stream, tāpēc, lūdzu, pārveidojiet to PDF formātā atbilstoši apstrādes saturam.

Piemēram, ja vēlaties to saglabāt kā lokālu failu, pievienojiet tālāk norādīto informāciju.

// ファイルにストリームを書き出します
using var fs = new FileStream("Output.pdf", FileMode.Create);
outputStream.CopyTo(fs);

Ja vēlaties to lejupielādēt ar ASP.NET, pievienojiet šādu informāciju.

return File(outputStream, "application/pdf", "Output.pdf");

Mēģiniet atvērt izvades PDF failu, lai redzētu, vai tas ir kārtībā.