הפקת דוח ActiveReports כקובץ PDF

עודכן דף :
תאריך יצירת דף :

סביבת הפעלה

חלונות
  • Windows 10 Pro 22H2
Visual Studio
  • מהדורת הקהילה של Visual Studio 2022
ActiveReports עבור .NET
  • ActiveReports עבור .NET 16.0J

דרישות מוקדמות

חלונות
  • Windows 8.1
  • חלונות 10
  • חלונות 11
  • שרת Windows 2012
  • Windows Server 2012 R2
  • שרת Windows 2016
  • שרת Windows 2019
  • שרת Windows 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
.רשת
  • .NET Core 3.1
  • .NET 5
  • .NET 6
ActiveReports עבור .NET
  • ActiveReports עבור .NET 16.0J

כיצד להפיק פלט לקובץ PDF

אם משתמש מעוניין בדוח כקובץ PDF, הדרך המהירה ביותר לספק אותו היא להציג את הדוח במציג. בנוסף להצגת דוחות, למציג יש פונקציה להדפיס ולהפיק קבצים כגון PDF, כך שאם תציג את המציג, תוכל לבקש מהמשתמש להפיק את קובץ ה- PDF.

עם זאת, במקרים מסוימים, ייתכן שלא תרצה להטריד את המשתמש, או שתרצה לכוון באופן שיטתי את קובץ ה- PDF. סעיף זה מתאר כיצד להפיק באופן תוכניתי קובץ PDF ישירות מדוח.

שיטות ומגבלות פלט קובץ PDF

ישנן מספר דרכים להפיק קבצי PDF באופן תכנותי, אך לא כולן מקובלות. הדבר משתנה בהתאם לגירסת ActiveReports, לפלטפורמה, למסגרת ולסוג הדוח שהיא מבצעת. לדוגמה, ב- ActiveReports 16, דוחות מקטעים ודפים מופקים באופן שונה מבחינה תכנותית. דוגמה לכך ניתן למצוא גם בדף הרשמי.

מסיבה זו, הנה כמה דוגמאות לפלט PDF תיכנותי שניתן להשתמש בו כהפניה כדי למצוא את הפלט המתאים לפרוייקט שלך.

אודות הדוח לדוגמה

קובץ הדוח הכלול בתבנית עבור הפרויקט החדש ריק, ולכן נשתמש בדוח לדוגמה הרשמי. הנה כמה הצעות, אז אנא הורד אותן מאחד האתרים הבאים.

במקרה זה, נשתמש בדוח לדוגמה הבא.

  • דוח דף : Estimate_page_ipa.rdlx
  • דוח מקטע: Invoice.rpx (כלול בפרוייקט לדוגמה WebSample16)

עיבוד והפקה של מסמכי PDF (דוחות עמוד/דוחות RDL)

קיים "מסנן ייצוא" להפקת קבצי PDF, אך בגרסה 16 ניתן להשתמש בו רק עבור דוחות מקטעים.

לכן, דוחות דף/דוחות RDL צריכים להיווצר עם "הרחבת ציור" כמתואר בדף לעיל.

קודם כל, אני אצור פרויקט, אבל הפעם אני אעשה את זה עם יישום מסוף פשוט. קל להחיל אותו על גרסאות שולחן העבודה והאינטרנט בדיוק כפי שהוא קל להחיל על גרסת האינטרנט.

בעת יצירת פרויקט, בחר יישום קונסולה.

לאחר יצירת הפרויקט, הוסף את החבילות הנדרשות.

הנה מה שתוסיף: אנא אל תקבל את הגרסה העדכנית ביותר, אך השתמש בגרסה המתוארת להלן. נראה כי שילובי חבילות מסוימים אינם פועלים כראוי עם הגרסה האחרונה. מוצג סימן אזהרה, אך התעלם ממנו מכיוון שיחסי התלות אינם תואמים. עם זאת, קיימת אפשרות שהוא ישתנה עם שדרוגי גרסה בעתיד, אז אנא התאם אותו בכל פעם. GrapeCity.Documents.Imaging GrapeCity.Documents.Pdf ונדרשים לעיבוד ל- PDF.

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

הוסף קובץ דוח לפרוייקט שלך. המיקום יכול להיות בכל מקום, אבל הפעם אני Reports יוצר תיקיה ומכניס אותה לשם. מיקום מיקום זה משפיע על הנתיב שתציין מאוחר יותר.

לאחר מכן, פתח את המאפיינים של הדוח שהוספת.

הגדר את פעולת הבנייה למשאב מוטבע. משמעות הדבר היא הטבעה של המשאב בתוך EXE (DLL). הדוח נטען באופן ייחודי בשולחן העבודה כפי שהוא באינטרנט.

לאחר מכן, כתוב את הקוד כדי לטעון את הדוח ולהדפיס אותו ל- PDF. מכיוון שמדובר ביישום קונסולה, יש לתאר אותו בתוכנית.cs כפי שהוא, אך אם מדובר בשולחן עבודה, יש לתאר אותו באירוע כפתור וכו ', ואם הוא ASP.NET, יש לתאר אותו במקום בו הוא מעובד כאשר הוא פורסם.

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

אני לא אסביר בפירוט איזה סוג של עיבוד זה כי זה כתוב את ההערות של הקוד. המפתח הוא לציין את מיקום קובץ הדוח בשורה הראשונה. התבנית היא כדלקמן <アセンブリ名>.<レポートファイルのパス> , וכל מפרידי הנתיבים הם נקודות.

האחרון הוא זרם, אז אנא המר אותו ל- PDF בהתאם לתוכן העיבוד.

לדוגמה, אם ברצונך לשמור אותו כקובץ מקומי, הוסף את הפרטים הבאים.

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

אם ברצונך להוריד אותו עם ASP.NET, הוסף את הפרטים הבאים.

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

נסה לפתוח את קובץ PDF הפלט כדי לראות אם זה בסדר.

הפקת פלט PDF באמצעות מסנני ייצוא (דוחות מקטעים)

השתמשו במסנן ייצוא PDF הזמין לדוחות מקטעים.

הוא נוצר בפרויקט מסוף באותו אופן כמו עבור דוחות דף. ניתן להחיל את הקוד וההגדרות שאתה יוצר כאן על פרוייקטים אחרים.

לאחר יצירת הפרויקט, הוסף את החבילות הנדרשות. הפעם, נצא עם מסנן ייצוא, ולכן נוסיף רק אחד.

  • GrapeCity.ActiveReports.Export.Pdf (16.4.0)

הוסף קובץ דוח לפרוייקט שלך. המיקום יכול להיות בכל מקום, אבל הפעם אני Reports יוצר תיקיה ומכניס אותה לשם. מיקום מיקום זה משפיע על הנתיב שתציין מאוחר יותר.

לאחר מכן, פתח את המאפיינים של הדוח שהוספת.

הגדר את פעולת הבנייה למשאב מוטבע. משמעות הדבר היא הטבעה של המשאב בתוך EXE (DLL). הדוח נטען באופן ייחודי בשולחן העבודה כפי שהוא באינטרנט.

לאחר מכן, כתוב את הקוד כדי לטעון את הדוח ולהדפיס אותו ל- PDF. מכיוון שמדובר ביישום קונסולה, יש לתאר אותו בתוכנית.cs כפי שהוא, אך אם מדובר בשולחן עבודה, יש לתאר אותו באירוע כפתור וכו ', ואם הוא ASP.NET, יש לתאר אותו במקום בו הוא מעובד כאשר הוא פורסם.

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

אני לא אסביר בפירוט איזה סוג של עיבוד זה כי זה כתוב את ההערות של הקוד. המפתח הוא לציין את מיקום קובץ הדוח בשורה הראשונה. התבנית היא כדלקמן <アセンブリ名>.<レポートファイルのパス> , וכל מפרידי הנתיבים הם נקודות.

האחרון הוא זרם, אז אנא המר אותו ל- PDF בהתאם לתוכן העיבוד.

לדוגמה, אם ברצונך לשמור אותו כקובץ מקומי, הוסף את הפרטים הבאים.

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

אם ברצונך להוריד אותו עם ASP.NET, הוסף את הפרטים הבאים.

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

נסה לפתוח את קובץ PDF הפלט כדי לראות אם זה בסדר.