Foxit PDF SDK Python Library
This section describes how to run samples and create a basic Python project using the Foxit PDF SDK Python library. The project demonstrates rendering the first page of a PDF document to a bitmap and saving it as a JPG image.
Prerequisites
Development environment
- Python version: Supports Python 2.7, Python 3.6–3.10, and Python 3.11+ builds using the ABI3 interface.
- Foxit PDF SDK Python library: Request a trial via the Foxit Developer Hub. Download and install the library that matches your OS and architecture.
System support
We provide detailed system support information for Windows, Linux, and Mac, including operating system versions and compiler requirements. Select your platform to view the details.
Windows Linux MacConfiguration
Install the Foxit SDK Python module
python
pip install FoxitPDFSDKPython3Install third-party modules
To run the Security Demo and Signature Demo successfully, install the third-party modules as follows.
python
pip install cryptography==2.3
pip install pyopenssl==19.0.0
pip install uuidConfigure the Python library
To run the Foxit PDF SDK Python 2.7 library correctly on Windows or Linux, copy the appropriate library file based on your Python version (32-bit or 64-bit).
Windows Python 2.7 users:
- x64 systems:
- Manually copy
FoxitPDFSDKPython2/x64_vc15/_fsdk.pydto theFoxitPDFSDKPython2/directory.
- Manually copy
- x86 systems:
- Manually copy
FoxitPDFSDKPython2/x86_vc15/_fsdk.pydto theFoxitPDFSDKPython2/directory.
- Manually copy
Linux Python 2.7 users:
- x64 systems:
- Manually copy
FoxitPDFSDKPython2/x64/_fsdk.soto theFoxitPDFSDKPython2/directory.
- Manually copy
- x86 systems:
- Manually copy
FoxitPDFSDKPython2/x86/_fsdk.soto theFoxitPDFSDKPython2/directory.
- Manually copy
Alternatively, run the examples/simple_demo/rundemo_python.py script to copy the library files automatically.
Run samples
Foxit PDF SDK provides Python scripts to run Python samples. Follow the steps below to start and run the relevant samples quickly.
Run samples with the Python script
The rundemo_python.py script wraps sample configuration and dependency handling to simplify running samples.
Run all samples
python
cd examples/simple_demo/
python rundemo_python.pyRun a specific sample
For example, to run the annotation sample:
python
cd examples/simple_demo/
python rundemo_python.py annotationRun sample scripts directly
If your Python environment and dependencies are configured correctly, you can run sample scripts directly. The following command runs the annotation sample:
python
cd examples/simple_demo/annotation/
python -u annotation.pyNOTE
- For Python 2.7, see Configure the Python library and ensure the library file matches your Python version.
- For Python 3, if the FoxitPDFSDKPython3 module is installed, you can run sample scripts directly.
Quick start
Create a project directory and prepare sample files
- Create a project folder: Create a folder named
test. - Copy sample data: Copy
SamplePDF.pdffrom/examples/simple_demo/input_filesintotestas the project input file.
- Create a project folder: Create a folder named
Configure the Python library
Create and run the project script
- Create a sample script: In the
testfolder, create a Python script namedtest.pyand add the sample code below:
[test.py]
pythonimport sys import site import platform from shutil import copyfile if sys.version_info.major == 2: _PYTHON2_ = True else: _PYTHON2_ = False # For Python2, copy the corresponding version of the dynamic library to the folder FoxitPDFSDKPython2. if _PYTHON2_: arch = platform.architecture() if arch[0] == "32bit": src_lib_path = "./FoxitPDFSDKPython2/x86_vc15/_fsdk.pyd" elif arch[0] == "64bit": src_lib_path = "./FoxitPDFSDKPython2/x64_vc15/_fsdk.pyd" dest_lib_path = "./FoxitPDFSDKPython2/_fsdk.pyd" if src_lib_path is not None: copyfile(src_lib_path, dest_lib_path) if _PYTHON2_: site.addsitedir('./') from FoxitPDFSDKPython2 import * else: from FoxitPDFSDKPython3 import * # Assuming PDFDoc doc has been loaded. # The value of "sn" can be got from "gsdk_sn.txt" (the string after "SN="). # The value of "key" can be got from "gsdk_key.txt" (the string after "Sign="). sn = " " key = " " def main(): # Load a PDF document, and parse the first page of the document. doc = PDFDoc("SamplePDF.pdf") error_code = doc.Load("") if error_code!= e_ErrSuccess: return 0 page = doc.GetPage(0) page.StartParse(PDFPage.e_ParsePageNormal, None, False) width = int(page.GetWidth()) height = int(page.GetHeight()) matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation()) # Prepare a bitmap for rendering. bitmap = Bitmap(width, height, Bitmap.e_DIBArgb) bitmap.FillRect(0xFFFFFFFF, None) # Render page. render = Renderer(bitmap, False) render.StartRender(page, matrix, None) # Add the bitmap to image and save the image. img = Image() img.AddFrame(bitmap) img.SaveAs("testpage.jpg") return 0 if __name__ == '__main__': code = Library.Initialize(sn, key) if code == e_ErrSuccess: main() Library.Release()- Run the sample script: Open a terminal, navigate to the
testfolder, and runpython test.py. - Verify output: If the script runs successfully,
testpage.jpgis generated in the current folder.
- Create a sample script: In the