@manhng

Welcome to my blog!

Tìm hiểu về định dạng PDF

January 22, 2018 00:58

Tuần này bạn có mở file PDF nào không, nhiều khả năng là có vì đây đang làm một trong những định dạng tài liệu số được sử dụng phổ biến nhất, và cũng là kiểu file có thể xem đồng nhất trên bất kì thiết bị nào mà không sợ bể định dạng như Word hay PowerPoint. Gần như mọi hệ điều hành hiện đại cũng hỗ trợ sẵn khả năng đọc và xuất file PDF, từ iOS, Android cho đến macOS hay Windows. Vì sao PDF lại được người ta ưa chuộng như vậy?

Lịch sử hình thành

Portable Document Format (PDF) là một định dạng file được tạo ra bởi Adobe nhằm mục đích chia sẻ tài liệu một cách đáng tin cậy, không trói buộc vào phần mềm, phần cứng hay một hệ điều hành nhất định nào cả.

Người sáng tạo ra chuẩn file này là Tiến sĩ John Warnock, một trong những nhà đồng sáng lập Adobe. Ý tưởng ban đầu của ông mang tên The Camelot Project, ông muốn tạo mọi người đều có thể tạo được tài liệu bằng bất kì app nào, gửi file đó đi bất kì đâu, đồng thời có thể xem hay in từ bất kì máy in nào. Năm 1992, dự án Camelot đổi tên thành PDF.

Và mặc dù Adobe là người tạo ra PDF nhưng ngày nay nó đang được bảo trì và phát triển bởi Hiệp hội Tiêu chuẩn Quốc tế (ISO). Để được chọn, PDF đã phải cạnh tranh với nhiều đối thủ khác như DjVu, Envoy, Common Ground Digital Paper, Farallon Replica, thậm chí cả với chuẩn PostScript của chính Adobe. Năm 1993, Adobe quyết định mở bản quyền PDF ra cho mọi người sử dụng mà không phải tốn đồng phí nào, và tới năm 2008 thì cấu hình PDF chính thức được chuyển giao cho ISO. Adobe cũng miễn phí tất cả mọi bản quyền cần thiết cho việc tạo ra, sử dụng, bán và chia sẻ file PDF.

Đang tải PDF_inventor.jpg… 


PDF được gắn chuẩn ISO 32000, điều đó cho thấy PDF không phải là một thứ độc quyền mà chỉ có Adobe mới được can thiệp vào, thay vào đó nó là một thứ nhận được sự đóng góp và ủng hộ từ cả thế giới để trở thành một định dạng chuẩn khi bạn cần chia sẻ dữ liệu với người khác. Nhưng thực ra bên trong nó vẫn còn một số công nghệ chỉ do Adobe nắm giữ, ví dụ như kiến trúc Adobe XML Forms Architecture (XFA) và chức năng chạy JavaScript cho phần mềm Acrobat. Những tính năng này thường không được hỗ trợ bởi các app bên thứ ba. Ngoài ra còn có một số chuẩn PDF khác được tùy biến riêng cho những mục đích: PDF/A cho lưu trữ (loại bỏ mã hóa, link font...), PDF/E cho bảng vẽ kĩ thuật, PDF/X cho in ấn...

Vì sao PDF mở ở đâu cũng không bị bể định dạng?

Quay trở lại lý do ra đời của chuẩn PDF, nó xuất hiện vì lý do rất đơn giản: có thể mở được trên bất kì thiết bị nào, bất kì phần mềm nào mà không lo chuyện bể bố cục hay mất font hay gặp các vấn đề có thể làm ảnh hưởng đến việc xem tài liệu. Để làm được điều này, file PDF đóng gói tất cả những gì cần thiết vào trong 1 file duy nhất, bao gồm các dòng chữ của bạn nhập vào, định nghĩa về bố cục và dàn trang, font, hình ảnh và mọi thông tin khác.

Đang tải PDF_logo.jpg… 
Logo của PDF


Nói cách khác, chỉ 1 file PDF là có đủ "hàng" để hiển thị hoàn chỉnh tài liệu, không như Word nếu máy tính của bạn chưa cài font thì bạn sẽ không thấy chữ, hoặc sử dụng bản Word cũ sẽ không thấy được các chức năng dành riêng cho Word mới hơn. Một số file cũng chỉ nhúng hình ảnh từ web và chỉ hiển thị khi có kết nối Internet, trong khi file PDF nhúng cả tấm ảnh vào để sẵn sàng hiện ra khi bạn cần. Cũng vì lý do này mà đôi khi file PDF nặng hơn file Word.

Và nhờ việc được công nhận cũng như hỗ trợ rộng rãi, bạn có thể yên tâm rằng bạn gửi một file PDF cho ai đó thì họ chắc chắn sẽ đọc được. Android, iOS, Windows Phone, Windows PC, BlackBerry... tất cả đều có tính năng xem file PDF được tích hợp theo một cách nào đó và bạn không cần cài thêm bất kì thứ gì, trừ khi bạn muốn các tính năng nâng cao như đánh dấu, kẹp trang, tìm kiếm... Nếu OS nào không hỗ trợ sẵn việc xem file PDF là do lỗi của OS không hỗ trợ các chuẩn chung, và bạn có quyền chê hệ điều hành đó.

Tất nhiên, cũng có một số vấn đề ở đây bởi đời không bao giờ là màu hồng. Một số ứng dụng đọc file PDF không đính kèm đủ các font cơ bản, bao gồm Times (v3) (in regular, italic, bold, and bold italic), Courier (in regular, oblique, bold and bold oblique), Helvetica (v3) (in regular, oblique, bold and bold oblique), Symbol, Zapf Dingbats nên khi mở file có thể không đọc được. Một số trình đọc file khác thì không hỗ trợ chức năng chèn chữ kí một cách dễ dàng... Chủ yếu vấn đề xoay quanh việc tương thích với app chứ không phải nằm ở bản chất của định dạng.

Cấu hình PDF hiện tại đang dừng ở con số 1.7.

Những tính năng chính của PDF

Tính bảo mật cao, hạn chế việc chỉnh sửa

Trước hết, bạn cần biết là file PDF rất khó để chỉnh sửa, trừ khi bạn bỏ tiền ra mua các phần mềm như Adobe Acrobat hay Foxit PhantomPDF. Hãy thử xem, hầu hết các trình xem file PDF trên smartphone, tablet và PC đâu có cho bạn thêm bớt chữ nghĩa nào đâu, nó chỉ cho phép bạn đánh dấu hoặc cùng lắm là điền form, kí tên thôi.

Adobe cho hay: "Khi làm việc với các tài liệu số, điều quan trọng là phải bảo mật nó thường xuyên. Bạn có thể gắn password để bảo vệ file PDF, tránh người khác copy, chỉnh sửa. Bạn cũng có thể che bớt một số thông tin nhạy cảm (ví dụ: tên bị can trong vụ xử án), thậm chí là ẩn tìm và xóa đi những dữ liệu ẩn".

Có khả năng điền biểu mẫu, chèn chữ kí

Khi bạn gửi cho người khác một biểu mẫu và yêu cầu họ điền thông tin, nếu bạn gửi file Word thì bạn thường sẽ phải cho phép người ta edit nguyên file, mà như vậy họ có thể làm sai lệch thông tin gốc của bạn (do nhầm lẫn hoặc cố tình phá hoại. Word cũng có chức năng làm form như không nhiều người biết). Trong khi đó, với file PDF, bạn có thể chỉ định cho phép người ta điền đúng một số trường mà bạn yêu cầu, còn lại không thể can thiệp hay chỉnh sửa gì trên tài liệu cả.

Đang tải PDF_form.png…


Chuyện tương tự cũng diễn ra khi bạn cần kí hợp đồng số hoặc các lệnh chuyển tiền số. Lúc gửi bản hợp đồng cho đối tác, bạn chỉ cần chừa trống chỗ để họ chèn chữ kí vào là xong (có nhiều app làm được điều này, trên macOS có sẵn trình Preview cho chèn luôn chữ kí). Bạn không lo đối tác sửa lại các điều khoản và làm sai lệch những gì hai bên đã thỏa thuận. Mình cũng thường xuyên xài tính năng này, rất tiện và không cần phải in hợp đồng ra nữa.

Phù hợp cho tài liệu scan từ giấy

Khi scan tài liệu từ giấy vào, mặc định nó sẽ là một file hình. Lúc này các công cụ OCR (Optical character recognition) sẽ chạy lên và nhận biết các kí tự trong ảnh và chuyển thể nó thành một văn bản mà bạn có thể chỉnh sửa hay cắt dán y như bình thường. OCR trước chỉ hỗ trợ tiếng Anh nhưng giờ đây đã có nhiều phần mềm, giải pháp OCR hỗ trợ tiếng Việt rồi. Bản thân Adobe cũng có một số tính năng OCR mạnh trong bộ phần mềm của họ và nó hỗ trợ tốt nhất cho file PDF.

Có thể vẽ hình mà phóng to vẫn không vỡ

Trong thế giới số, hình ảnh có 2 loại: bitmap / raster image và vector image. Bitmap là những hình ảnh được cấu tạo từ các pixel và số pixel của ảnh sẽ cố định 1 con số duy nhất. Khi bạn phóng to hình ra, các pixel cũng được phóng to theo dẫn tới tình trạng mờ nhòe, vỡ hạt. Còn hình vector là hình ảnh được cấu thành từ các tọa độ, điểm, đường thẳng, đường cong. Khi bạn phóng to nó lên, hệ trục cũng được phóng to theo và phần mềm cứ dựa theo các tọa độ mà vẽ lại hình ảnh nên không bao giờ vỡ hình cả.

File PDF hỗ trợ cả hai loại hình ảnh này, trong đó hình ảnh vector thường dùng để vẽ đồ thị, hình minh họa, nói chung là các loại hình ảnh đồ họa mà không phải chụp từ máy ảnh.

Đang tải raster_vs_vector_image.jpg…


File PDF còn hỗ trợ đặt nhiều tầng hình ảnh và chữ, lớp ở trên sẽ hiển thị hiệu ứng blend vào lớp bên dưới (nếu có thiết lập mức độ trong suốt), còn không thì nó đè lên luôn. Chức năng này ở các bản đầu tiên của PDF không có.

Tài liệu soạn trong Word cũng có thể xuất ra thành file PDF. Bản vẽ kĩ thuật cũng có thể ra file PDF. Hình ảnh sau khi edit xong bằng Photoshop cũng có thể lưu thành file PDF. Thậm chí một số trình duyệt giờ còn cho phép "in" trang web ra thành một file PDF để đọc khi không có mạng nữa kìa. Chính độ linh hoạt cao như vậy, cộng với việc được hỗ trợ rộng rãi, đã khiến PDF trở thành một định dạng lý tưởng để chia sẻ tài liệu giữa bạn bè với nhau, trong công ty, trường học hay công bố rộng rãi trên Internet. Xin cảm ơn Adobe đã tạo ra PDF để chúng ta bớt cực hơn.

Tham khảo: Adobe, MakeUseOf, Wikipedia

Export to PDF

November 20, 2017 15:52

ABCpdf .NET (edit)

https://www.websupergoo.com/products.htm

PDFLib.com

PDFlib: PDFlib GmbH Home

iTextSharp

https://sourceforge.net/projects/itextsharp/

PDF

November 16, 2017 15:27

PDF (edit)

  • Excel VBA Macro
  • Microsoft Print to PDF
  • Convert Excel Range to PDF
  • Convert Excel Chart to PDF
  • Get Text Coordinates in PDF
  • Get Image Coordinates in PDF
  • PDFlib
  • PDFlib TET
  • iTextSharp

http://www.c-sharpcorner.com/UploadFile/f4f047/generating-pdf-file-using-C-Sharp/

Get Text Coordinate in PDF file using iTextSharp in .NET Core (C#)

ronistiawan/get-text-coordinate-from-pdf: Find text in a pdf file and return the coordinate (github.com)

var pdfFilename = @"PathToYourPDF\random.pdf";
var textToFind = "Lombok";
var pageNumber = 1;
var point = PdfTools.GetTextCoordinate(textToFind, pdfFilename , pageNumber);
Console.WriteLine($"{point.X},{point.Y}");

PDFLib

PDFlib: PDFlib GmbH Home

How to use the Classic .NET Binding of PDFlib Products with .NET Framework

How to use the Classic .NET Binding of PDFlib Products with the .NET Framework (HAY HAY HAY)

https://www.pdflib.com/fileadmin/pdflib/changelog/changes-PDFlib-8.0.6.txt

https://www.pdflib.com/fileadmin/pdflib/changelog/changes-PDFlib-9.3.1.txt

Rectangle site:www.pdflib.com

MediaBox site:www.pdflib.com

CropBox site:www.pdflib.com

IccCmyk to IccRgb site:www.pdflib.com

fully multi-threaded under IIS site:www.pdflib.com

PDFlib's thread-safety site:www.pdflib.com

c# - How to properly set up a multithreaded Asp.Net MVC + COM server on IIS - Stack Overflow (HAY HAY HAY)

asp.net - File Access Strategy in a Multi-Threaded Environment (Web App) - Stack Overflow (HAY HAY HAY)

iTextSharp

https://sourceforge.net/projects/itextsharp/

iTextSharp: Merge multiple PDF files

Merge PDFs In C# (c-sharpcorner.com)

Merge Multiple PDF Files Into Single PDF Using Itextsharp In C# (c-sharpcorner.com)

Merge Multiple PDF Files Into Single PDF Using Itextsharp in C# - Codingvila

ABCpdf.NET

.NET Components. ABCpdf .NET for PDF and HTML Conversion. ImageGlue .NET for Image Manipulation. (websupergoo.com)

Rectangle site:www.websupergoo.com

MediaBox site:www.websupergoo.com

CropBox site:www.websupergoo.com

IccCmyk to IccRgb site:www.websupergoo.com

Converting HTML to PDF using C#

HTML to PDF C# Conversion – The Definitive Guide (websupergoo.com) (HAY HAY HAY)

ABCpdf is fully multi-threaded it is ideal for use under IIS (HAY HAY HAY)

ABCpdf .NET - A C# PDF LIBRARY OF TRUE AWESOMENESS.

The ABCpdf .NET C# PDF library is a .NET component for the dynamic reading, writing, conversion and manipulation of Adobe PDF documents. Supporting a vast range of image and document formats and featuring three different HTML to PDF conversion engines.

PDF creation with ABCpdf .NET

ABCpdf .NET - C# PDF library component for the creation and manipulation of Adobe PDF documents.

  • Free 30-day trial of full product, with free tech support!
  • Designed for web server and standalone applications.
  • Comprehensive documentation, freely adaptable projects and example code.
  • Use with C#, ASP.NET, .NET Forms, ASP, VB, and more...

Categories

Recent posts