flutter_html_to_pdf_plus 0.3.0
flutter_html_to_pdf_plus: ^0.3.0 copied to clipboard
Flutter plugin for generating PDF documents from HTML code templates
flutter_html_to_pdf_plus #
Flutter plugin for generating PDF files from HTML content with support for custom document sizes, orientations, and margins. Works on both Android and iOS.
Features #
- Convert HTML content to PDF
- Support for all standard paper sizes (A0-A10)
- Custom document sizes with user-defined dimensions
- Portrait and landscape orientations
- Customizable page margins
- Support for both Android and iOS
- Support for web images and local images
- Returns both File object and byte data
Usage #
From a raw HTML content #
final targetDirectory = "/your/sample/path";
final targetName = "example_pdf_file";
final generatedPdfFile = await FlutterHtmlToPdf.convertFromHtmlContent(
content: htmlContent,
configuration: PrintPdfConfiguration(
targetDirectory: targetDirectory,
targetName: targetName,
margins: PdfPageMargin(top: 50, bottom: 50, left: 50, right: 50),
printOrientation: PrintOrientation.Landscape,
printSize: PrintSize.A4
),
);
From an HTML file #
final file = File("/sample_path/example.html");
final generatedPdfFile = await FlutterHtmlToPdf.convertFromHtmlFile(
htmlFile: file,
configuration: PrintPdfConfiguration(
targetDirectory: targetDirectory,
targetName: targetName,
margins: PdfPageMargin(top: 50, bottom: 50, left: 50, right: 50),
printOrientation: PrintOrientation.Landscape,
printSize: PrintSize.A4
),
);
From an HTML file path #
final filePath = "/sample_path/example.html";
final generatedPdfFile = await FlutterHtmlToPdf.convertFromHtmlFilePath(
htmlFilePath: filePath,
configuration: PrintPdfConfiguration(
targetDirectory: targetDirectory,
targetName: targetName,
margins: PdfPageMargin(top: 50, bottom: 50, left: 50, right: 50),
printOrientation: PrintOrientation.Landscape,
printSize: PrintSize.A4
),
);
Using custom document size #
// Create a configuration with custom size (width and height in pixels at 72 PPI)
final configuration = PrintPdfConfiguration(
targetDirectory: targetDirectory,
targetName: targetName,
printSize: PrintSize.Custom,
customSize: CustomSize(width: 400, height: 600), // Custom dimensions in pixels (72 PPI)
printOrientation: PrintOrientation.Portrait,
margins: PdfPageMargin(top: 50, bottom: 50, left: 50, right: 50),
);
// Generate PDF with custom size
final generatedPdfFile = await FlutterHtmlToPdf.convertFromHtmlContent(
content: htmlContent,
configuration: configuration,
);
Getting PDF as bytes #
final pdfBytes = await FlutterHtmlToPdf.convertFromHtmlContentBytes(
content: htmlContent,
configuration: PrintPdfConfiguration(
targetDirectory: targetDirectory,
targetName: targetName,
printSize: PrintSize.A4,
),
);
// Use the bytes as needed (e.g., upload to server, save to database)
Images #
If you want to add local images from the device to your HTML, you need to pass the path to the image as the src value:
<img src="file:///storage/example/your_sample_image.png" alt="local-img">
Or if you want to use an image File object:
<img src="${imageFile.path}" alt="file-img">
Web images are also supported:
<img src="https://example.com/image.jpg" alt="web-img">
Note: Many images inside your document can significantly affect the final file size. We suggest using flutter_image_compress plugin to compress images before generating PDF.
Supported Paper Sizes #
- A0 - A10 standard sizes
- Custom size with user-defined dimensions
Supported Orientations #
- Portrait
- Landscape
Contributing #
If you want to contribute, please submit a pull request or create an issue.