PDFlib Personalization Server在突破PDF靜態文檔的成果上強化了PDF的概念。為了更容易、更快速的列印數據,PDFlib引入了PDF的新特性。根據引入的"PDFlib Blocks"概念,PDFlib針對PDFlib Personalization Server所引起的問題提供解決方案。
PDFlib Personalization Server建立在兩部分概念的基礎上。
PDFlib Block Plugin for Acrobat是一個交互式的工具,它可使開發者在上方已存在的PDF數據來定義區域(PDFlib Block)。在服務端的處理過程中PDFlib block好比一個充滿文本、圖檔、PDF數據的定義容器。
Block的處理特性如同部份的PDFlib Personalization Server,編程人員可以將PDFlib blocks裡重要的PDF頁中的訊息和動態訊息(比如說,數據庫域)聯結起來。編程人員並不需要知道block的詳細訊息,因此這些詳細訊息是完全獨立於設計變化的。PDFlib會自動管理好那些於文件將中找到與Block相關的訊息。
PDFlib參考手冊中有一個概念詳細的解釋了PDFlib Personalization Server和內置的PDFlib Block 。
PDFlib Personalization Server是PDFlib產品包中製作的最好的一個產品,它是在基於PDFlib和PDI的基礎上構建的。
Feature | API functions and parameters | PDFlib | PDFlib +PDI |
PPS |
Basic PDF generation | all except those listed below | V | V | V |
Linearized (Web-optimized) PDF | linearize option in PDF_end_document() |
V1 | V | V |
Optimize PDF (only relevant for inefficient client code and non-optimized imported PDF documents) | optimize option in PDF_end_document() |
V1 | V | V |
Parsing PDF documents for Portfolio creation | password option in PDF_add_portfolio_file() |
V1 | V | V |
PDF import (PDI) | all PDI functions | V | V | |
Query information from PDF with pCOS | all pCOS functions | V | V | |
Fill Blocks with variable data | PDF_fill_*block( ) | V | ||
Create Blocks programmatically | PDF_poca_new( ): option usage=blocks PDF_begin/end_page_ext( ): option blocks |
V | ||
Copy Blocks to generated output | PDF_process_pdi( ): option action=copyblock or action=copyallblocks |
V | ||
Interactively create PDFlib Blocks for use with PPS | PDFlib Block Plugin for Acrobat | V |
1Not available in PDFlib source code packages since PDI is required internally for this feature
================================
Windows
================================
Requirements:
Windows 10/11 on x86 or x64
Windows Server 2012 and above on x86 or x64
C and C++ bindings
------------------
The delivered binaries (libraries) can be used to build applications with
Visual Studio and compatible products.
Project files for the programming samples are available for Visual Studio 2015.
Newer versions of Visual Studio convert these automatically.
Embarcadero C++ Builder
-----------------------
In order to use the shared library with Embarcadero C++ Builder 64-bit you
must create an import library from the DLL with the "mkexp" command, e.g.
mkexp pdflib.lib pdflib.dll
================================
.NET
================================
The .NET binding is implemented as C# assembly using C# Interop with
additional unmanaged code in a native shared library. It is distributed as
universal package with support for the following environments:
- Windows x86, Windows x64, Linux x64, macOS x64 and arm64, Alpine Linux x64
- .NET Standard 2.0, e.g. .NET 6/7/8
- .NET Framework 4.6.1 and above
(Visual Studio 2017 Version 15.7 or above)
The examples are written for Target Framework net6.0 In order to deploy
them with other Target Frameworks you may need to adjust the project files.
================================
Linux x64
================================
Requirements: GLIBC 2.12 or above and libstdc++.so.6.0.21 or above
based system on x64
C and C++ bindings
------------------
Compiler: g++ 5 or above
binutils: 2.26 or above
CFLAGS=-pthread
LDFLAGS=-pthread
================================
Linux ARM64
================================
Requirements: GLIBC 2.27 or above based system on ARM64
C and C++ bindings
------------------
Compiler: g++ 5 or above
CFLAGS=-pthread
LDFLAGS=-pthread
================================
Alpine Linux
================================
Requirements: Alpine Linux 3.4 and above on x64
musl C library (instead of glibc)
================================
macOS
================================
Requirements: macOS 10.9 and above on x64/ARM64
The Gatekeeper protection feature blocks unsigned applications. This applies
to all PDFlib GmbH command line tools.
If you want to use these tools you must inform the system that it is a
safe application. Override Gatekeeper by Control-clicking the application
icon and select "Open" from the top of the context menu.
This must be done only once per user account.
C, C++, and Objective-C bindings
--------------------------------
Compiler: Xcode 8 or above
==================================
FreeBSD
==================================
Requirements: FreeBSD 12/13 on x64
================================
AIX
================================
Requirements: AIX 7.2 and above
C and C++ bindings
------------------
Compiler: xlclang/xlclang++ 16.1 and above
Other language bindings
-----------------------
A C++ runtime implementation with support for C++11 and C++14 is required
via a library called libc++.a. This library is available in a C++ runtime
fileset called libc++.rte. Please refer to IBM documentation for more
information.
================================
IBM System i
================================
Not all products are available for IBM System i. Please refer to
www.pdflib.com regarding the use of AIX 32-bit binaries on i5 systems
with PASE.
Requirements: System i 7.2 and above
Functional restrictions on System i:
- ICU 50.1.1; only Unicode 6.2 supported
- WOFF2-compressed fonts not supported
- networking support not available
- C-based PDI/pCOS resource manager implementation instead of faster C++
implementation
- Decompression of JPEG 2000 streams not supported
================================
IBM System Z
================================
Requirements:
z/OS 2.1 and above with USS (64-bit) or MVS (32-bit)
Functional restrictions on System Z:
- networking support not available
C/C++ binding
-------------
The library for C/C++ has been built with xlclang++ (XL C/C++ V2.4.1 for
z/OS V2.4). Applications must be linked with XPLINK.
MVS
---
MVS versions of PDFlib GmbH products are not thread-safe.
Functional restrictions on MVS:
- ICU 50.1.1; only Unicode 6.2 supported
- WOFF2-compressed fonts not supported
- networking support not available
- C-based PDI/pCOS resource manager implementation instead of faster C++
implementation
================================
zLinux
================================
Requirements:
zLinux 64-bit (s390x)
GLIBC 2.19 (or later) based system.
C/C++ binding
-------------
CFLAGS/CXXFLAGS: -W "c,float(ieee)"
PDFlib+PDI
PDFlib+PDI includes all PDFlib functions plus the PDF Import Library (PDI). With PDI you can open existing PDF documents and incorporate some pages into the PDFlib output.
PDFlib Personalization Server (PPS)
PDFlib Personalization Server (PPS) includes PDFlib+PDI plus additional functions for variable data processing using PDFlib blocks. PPS makes applications independent from any layout changes.
PDFlib TET
The PDFlib Text and Image Extraction Toolkit (TET) is a developer product for reliably extracting text, images and metadata from PDF documents.
PDFlib TET PDF IFilter
TET PDF IFilter extracts text and metadata from PDF documents and makes it available to search and retrieval software on Windows. This allows PDF documents to be searched on the local desktop, a corporate server, or the Web.
PDFlib PLOP
PDFlib PLOP (PDF Linearization, Optimization, Protection) offers a straightforward way to linearize and optimize your PDF files for fast Web delivery, and to apply or remove Acrobat security features.
PDFlib PLOP DS
PDFlib PLOP DS (Digital Signature) offers all features of PLOP, plus the ability to apply digital signatures to PDF documents.