Metadata-Version: 2.1
Name: pypdfium
Version: 0.0.10
Summary: A simple python wrapper for PDFium
Home-page: https://github.com/YinlinHu/pypdfium
Author: Yinlin Hu
Author-email: huyinlin@gmail.com
License: MIT License
Description: # PyPDFium
        
        A simple python wrapper for [PDFium](https://opensource.google/projects/pdfium).
        
        ## Installation
        ```bash
        pip install pypdfium
        ```
        
        ## Quick start
        
        ```python
        import sys
        from PIL import Image
        
        import ctypes
        import pypdfium as PDFIUM
        PDFIUM.FPDF_InitLibraryWithConfig(PDFIUM.FPDF_LIBRARY_CONFIG(2, None, None, 0))
        
        if __name__ == "__main__":
            if len(sys.argv) < 2:
                print("USAGE: demo.py somefile.pdf")
                exit(0)
        
            fname = sys.argv[1]
        
            doc = PDFIUM.FPDF_LoadDocument(fname, None) # load document
            page_count = PDFIUM.FPDF_GetPageCount(doc)  # get page counts
            assert(page_count >= 1)
        
            page = PDFIUM.FPDF_LoadPage(doc, 0) # load the first page
            width = int(PDFIUM.FPDF_GetPageWidthF(page) + 0.5) # get page width
            height = int(PDFIUM.FPDF_GetPageHeightF(page) + 0.5) # get page height
            
            # render to bitmap
            bitmap = PDFIUM.FPDFBitmap_Create(width, height, 0)
            PDFIUM.FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 0xFFFFFFFF)
            PDFIUM.FPDF_RenderPageBitmap(
                bitmap, page, 0, 0, width, height, 0, 
                PDFIUM.FPDF_LCD_TEXT | PDFIUM.FPDF_ANNOT
                )
            
            # retrieve data from bitmap
            buffer = PDFIUM.FPDFBitmap_GetBuffer(bitmap)
            buffer_ = ctypes.cast(buffer, ctypes.POINTER(ctypes.c_ubyte * (width * height * 4)))
        
            img = Image.frombuffer("RGBA", (width, height), buffer_.contents, "raw", "BGRA", 0, 1)
            img.save("out.png")
        
            if bitmap is not None:
                PDFIUM.FPDFBitmap_Destroy(bitmap)
            PDFIUM.FPDF_ClosePage(page)
            
            PDFIUM.FPDF_CloseDocument(doc)
        ```
        
        ## References
        
        * The `pypdfium.py` file is generated by [ctypesgen](https://github.com/davidjamesca/ctypesgen) with command: `ctypesgen -lpdfium -L somewhere/pdfium-linux/lib somewhere/pdfium-linux/include/*.h -o pypdfium.py`
        
        * PDFium binaries are from https://github.com/bblanchon/pdfium-binaries
        
        * API documentation: https://developers.foxitsoftware.com/resources/pdf-sdk/c_api_reference_pdfium/
        
        * A PDF manager based on pypdfium: https://github.com/YinlinHu/kuafu
        
Keywords: Python PDFium
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
