ActiveReportsi aruande väljastamine PDF-failina

Lehekülg uuendatud :
Lehe loomise kuupäev :

Töökeskkond

Windows
  • Windows 10 Pro 22H2
Visuaalne stuudio
  • Visual Studio 2022 kogukonna väljaanne
ActiveReports .NET-i jaoks
  • ActiveReports for .NET 16.0J

Eeltingimused

Windows
  • Windows 8.1
  • Windows 10
  • Windows 11
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022
Visuaalne stuudio
  • Visual Studio 2017
  • Visual Studio 2019
  • Visual Studio 2022
.NET raamistik
  • NET Raamistik 4.6.2
  • NET Framework 4.7
  • NET Framework 4.8
.NET
  • .NET Core 3.1
  • .NET 5
  • .NET 6
ActiveReports .NET-i jaoks
  • ActiveReports for .NET 16.0J

Kuidas väljastada PDF-faili

Kui kasutaja soovib aruannet PDF-failina, on kiireim viis selle esitamiseks lasta aruannet vaaturis vaadata. Lisaks aruannete kuvamisele on vaatajal funktsioon failide, näiteks PDF-failide printimiseks ja väljastamiseks, nii et kui kuvate vaataja, võite paluda kasutajal PDF-fail väljastada.

Kuid mõnel juhul ei pruugi te soovida kasutajat häirida või soovite PDF-faili süstemaatiliselt suunata. Selles jaotises kirjeldatakse, kuidas programmiliselt väljastada PDF-faili otse aruandest.

PDF-faili väljastusmeetodid ja piirangud

PDF-failide programmiliseks väljastamiseks on mitmeid viise, kuid mitte kõik neist ei ole vastuvõetavad. See sõltub ActiveReportsi versioonist, platvormist, raamistikust ja esitatava aruande tüübist. Näiteks activeReports 16-s väljastatakse jaotise- ja lehearuandeid programmiliselt erinevalt. Selle näite leiate ka ametlikust lehelt.

Sel põhjusel on siin mõned näited programmilisest PDF-väljundist, mida saate kasutada viitena oma projektile sobiva leidmiseks.

Teave näidisaruande kohta

Uue projekti mallis sisalduv aruandefail on tühi, seega kasutame ametlikku näidisaruannet. Siin on mõned soovitused, nii et palun laadige need alla ühelt järgmistest saitidest.

Sel juhul kasutame järgmist näidisaruannet.

  • Lehe aruanne : Estimate_page_ipa.rdlx
  • Jaotise aruanne: Invoice.rpx (sisaldub WebSample16 näidisprojektis)

PDF-failide renderdamine ja loomine (lehearuanded / RDL-aruanded)

PDF-failide väljastamiseks on olemas "ekspordifilter", kuid versioonis 16 saab seda kasutada ainult jaotiste aruannete jaoks.

Seetõttu tuleb lehearuanded / RDL-aruanded luua "Joonise laiendiga", nagu on kirjeldatud ülaltoodud lehel.

Kõigepealt loon projekti, kuid seekord teen selle lihtsa konsoolirakendusega. Seda on töölaua- ja veebiversioonidele sama lihtne rakendada kui veebiversioonile.

Projekti loomisel valige Konsoolirakendus.

Pärast projekti loomist lisage vajalikud paketid.

Lisate järgmist. Palun ärge hankige uusimat versiooni, vaid kasutage allpool kirjeldatud versiooni. Tundub, et mõned paketikombinatsioonid ei tööta uusima versiooniga korralikult. Kuvatakse hoiatusmärk, kuid ignoreerige seda, kuna sõltuvused ei ühti. Siiski on olemas võimalus, et see muutub tulevikus versiooniuuendustega, nii et palun kohandage seda iga kord. GrapeCity.Documents.Imaging GrapeCity.Documents.Pdf ja peavad renderdama PDF-i.

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

Lisage oma projektile aruandefail. Asukoht võib olla kõikjal, kuid seekord loon Reports kausta ja panen selle sinna. See paigutuse asukoht mõjutab hiljem määratud teed.

Seejärel avage lisatud aruande atribuudid.

Määrake koostetoiminguks Manustatud ressurss. See tähendab ressursi manustamist EXE-sse (DLL). Aruanne laaditakse ainulaadselt töölauale, nagu see on veebis.

Seejärel kirjutage aruande laadimiseks kood ja printige see PDF-i. Kuna tegemist on konsoolirakendusega, tuleks seda kirjeldada programmis.cs nagu see on, kuid kui see on töölaud, tuleks seda kirjeldada nupusündmuses jne ning kui see on ASP.NET, tuleks seda kirjeldada kohas, kus seda töödeldakse, kui see on postitatud.

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

Ma ei selgita üksikasjalikult, millist töötlemist see on, sest see on kirjutatud koodi kommentaaridesse. Oluline on määrata aruandefaili asukoht esimesel real. Vorming on järgmine <アセンブリ名>.<レポートファイルのパス> ja kõik tee eraldajad on perioodid.

Viimane neist on Stream, nii et palun teisendage see PDF-iks vastavalt töötlemise sisule.

Näiteks kui soovite selle salvestada kohaliku failina, lisage järgmine teave.

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

Kui soovite selle ASP.NET abil alla laadida, lisage järgmine.

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

Proovige avada väljund-PDF-fail, et näha, kas see on korras.

Ekspordifiltreid kasutava PDF-i väljastamine (jaotise aruanded)

Kasutage jaotisaruannete jaoks saadaolevat PDF-i ekspordifiltrit.

See luuakse konsooliprojektis samamoodi nagu lehearuannete puhul. Siin loodud koodi ja sätteid saab rakendada teistele projektidele.

Pärast projekti loomist lisage vajalikud paketid. Seekord väljastame ekspordifiltriga, seega lisame ainult ühe.

  • GrapeCity.ActiveReports.Export.Pdf (16.4.0)

Lisage oma projektile aruandefail. Asukoht võib olla kõikjal, kuid seekord loon Reports kausta ja panen selle sinna. See paigutuse asukoht mõjutab hiljem määratud teed.

Seejärel avage lisatud aruande atribuudid.

Määrake koostetoiminguks Manustatud ressurss. See tähendab ressursi manustamist EXE-sse (DLL). Aruanne laaditakse ainulaadselt töölauale, nagu see on veebis.

Seejärel kirjutage aruande laadimiseks kood ja printige see PDF-i. Kuna tegemist on konsoolirakendusega, tuleks seda kirjeldada programmis.cs nagu see on, kuid kui see on töölaud, tuleks seda kirjeldada nupusündmuses jne ning kui see on ASP.NET, tuleks seda kirjeldada kohas, kus seda töödeldakse, kui see on postitatud.

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

Ma ei selgita üksikasjalikult, millist töötlemist see on, sest see on kirjutatud koodi kommentaaridesse. Oluline on määrata aruandefaili asukoht esimesel real. Vorming on järgmine <アセンブリ名>.<レポートファイルのパス> ja kõik tee eraldajad on perioodid.

Viimane neist on Stream, nii et palun teisendage see PDF-iks vastavalt töötlemise sisule.

Näiteks kui soovite selle salvestada kohaliku failina, lisage järgmine teave.

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

Kui soovite selle ASP.NET abil alla laadida, lisage järgmine.

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

Proovige avada väljund-PDF-fail, et näha, kas see on korras.