Hiển thị file pdf trong windows form

Trong phần trước mình đã giới thiệu cách đọc file pdf trong C# bằng thư viện iTextSharp. Đây là một thư viện miễn phí rất mạnh làm việc với pdf, và trong nội dung bài này, mình sẽ giới thiệu một chức năng vô cùng mạnh mẽ của bộ thư viện này, đó là xuất báo ra file pdf. Việc này vô cùng đơn giản và hiệu quả, thay cho Crystal Report trong VS vừa nặng vừa .. cùi.

Giao diện

Code

Việc đầu tiên cần phải làm là import file .dll của iTextSharp vào project.

Mình không nói đến phần lấy dữ liệu và hiển thị lên DataGridView, nếu các bạn chưa nắm được phần này, mình sẽ đưa source code và có những loạt bài về ADO.NET sau. Ở đây mình chỉ nói tới chức năng của nút xuất báo cáo.

Bước 1

Tạo 1 report table

Chú ý ở dòng 3, kích thước của table là 90% so với kích thước của khổ giấy

Bước 2

Dựa vào header của DataGridView để thêm header cho table report

Bước 3

Thêm mỗi dòng dữ liệu vào report table

Và bước cuối cùng, xuất ra pdf

Dòng 1 là đường dẫn của thư mục Reports nằm trong Project. 2 lần ..\ để tạo thư mục nằm ngoài 2 cấp thư mục hiện hành của file thực thi (\\Project\\bin\\debug\\*.exe) Nếu thư mục chưa có thì tạo mới thư mục (dòng 4).

Cuối cùng, tạo file pdf và lưu vào thư mục đó. Kích thước file pdf được tạo là khổ A4.

Source code

Trong bài này mình chỉ mới giới thiệu cách tạo ra report pdf. Mình sẽ viết thêm 1 bài viết về chỉnh sửa style cho table để xuất ra báo cáo đẹp hơn.

nguồn

Bài viết hôm nay, mình xin hướng dẫn cách các bạn nối nhiều file PDF thành một file PDF duy nhất trong lập trình Csharp. (Merge multifile PDF to one file PDF using C#)

Trong công việc, nhiều lúc các bạn muốn nối nhiều file PDF thành một file để cho tiện dễ đọc. 

Ví dụ: Khi chúng ta viết ứng dụng mỗi lần xuất hóa đơn thì xuất ra một file PDF, nhưng cuối tháng chúng ta muốn gom những file hóa đơn đó thành một file PDF để quản lý danh sách hóa đơn đó trong vòng một tháng thôi.

Rất may, trong lập trình C#, chúng ta có thư viện iTextSharp có hỗ trợ cho chúng ta thư viện có thể, nối và trộn nhiều file PDF thành một file PDF rất dễ dàng chỉ cần một click chuột. :))

Giao diện demo của ứng dụng:

Hiển thị file pdf trong windows form

Để thực hiện bài toán này:

- Trong bài viết này mình có sử dụng component Pdf viewer của Devexpress.

- Một button

- Một Open dialog, và bạn chỉnh thuộc tính cho nó chọn multifile nhé.

* Công việc đầu tiên, sau khi chúng ta tạo project là mình import thư viện iTextsharp vào project của mình, công việc chèn vào rất đơn giản chúng ta chỉ cần sử dụng tool Nuget để cài đặt vào.

Các bạn có thể xem clip gif hình hướng dẫn cài đặt ở bên dưới:

Hiển thị file pdf trong windows form

Sau khi chúng ta, cài đặt xong chúng ta bắt đầu tiến hành code:

Đầu tiên chúng ta cần import thư viện iTextsharp để xử lý file PDF vào:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
- Tiếp đến chúng ta tiếp tục viết hàm CombineMultifilePdfs 

public static void CombineMultiplePDFs(string[] fileNames, string outFile)
        {            
            Document document = new Document();         
            PdfCopy writer = new PdfCopy(document, new FileStream(outFile, FileMode.Create));
            if (writer == null)
            {
                return;
            }          
            document.Open();

            foreach (string fileName in fileNames)
            {
               
                PdfReader reader = new PdfReader(fileName);
                reader.ConsolidateNamedDestinations();

              
                for (int i = 1; i <= reader.NumberOfPages; i++)
                {
                    PdfImportedPage page = writer.GetImportedPage(reader, i);
                    writer.AddPage(page);
                }

                PRAcroForm form = reader.AcroForm;
                if (form != null)
                {
                    writer.CopyDocumentFields(reader);
                }

                reader.Close();
            }
           
            writer.Close();
            document.Close();
        }

- Hàm combinemultifiePDFs này chúng ta cần truyền dữ liệu vào là đường dẫn nhiều file PDF và chọn đường dẫn xuất ra file PDF.

Đoạn code cho button để nối file PDF trong lập trình C#

 private void button1_Click(object sender, EventArgs e)
        {
            DialogResult dr = this.openFileDialog1.ShowDialog();
            if (dr == System.Windows.Forms.DialogResult.OK)
            {

              CombineMultiplePDFs(openFileDialog1.FileNames, @"I:merge.pdf");
                pdfViewer1.LoadDocument(@"I:merge.pdf");
            }
        }

Vậy là chúng ta đã thành công.

Dưới đây là video mình demo ứng dụng các bạn có thể tham khảo trước:

CHÚC CÁC BẠN THÀNH CÔNG!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

NGUYỄN THẢO

Founder at LaptrinhVB.net

★★★★★

♥ Tình yêu thương chẳng hề hư mất bao giờ. (Cr 13,4)

=========================================================================

My skills includes .NET(C#, VB.NET), DevExpress, Java, Android, PHP,

Python, Sqlserver, Mysql, Reactjs, Dart, Flutter, API services and lot more...

Phone/Zalo/Telegram/WhatsApp: +84.933.913.122

Email: 

Facebook: https://fb.com/Lewandowski28031988

Youtube Channel: https://www.youtube.com/@thaomeotv

Hiển thị file pdf trong windows form
 

Buy me a cup of beer

Hiển thị file pdf trong windows form
       
Hiển thị file pdf trong windows form
Hiển thị file pdf trong windows form

Hiển thị file pdf trong windows form

=========================================================================

BÀI VIẾT LIÊN QUAN

Hiển thị file pdf trong windows form

Đăng bởi: Thảo Meo - Lượt xem: 14511 16:31:55, 16/03/2017C#   In bài viết