DACTE
DACTE (Auxiliary Document of the Electronic Transportation Bill) is a printed document used in Brazil to accompany the electronic transportation invoice (CT-e). It serves as a simplified version of the CT-e, providing key details about the shipment, such as cargo information, sender and receiver, and transport company data.
Basic Usage
from brazilfiscalreport.dacte import Dacte
# Path to the XML file
xml_file_path = 'cte.xml'
# Load XML Content
with open(xml_file_path, "r", encoding="utf8") as file:
xml_content = file.read()
# Instantiate the DACTE object with the loaded XML content
dacte = Dacte(xml=xml_content)
dacte.output('output_dacte.pdf')
Customizing DACTE 🎨
This section describes how to customize the PDF output of the DACTE using the DacteConfig class. You can adjust various settings such as margins, fonts, and other options according to your needs.
Configuration Options ⚙️
Here is a breakdown of all the configuration options available in DacteConfig:
Logo
- Type:
str,BytesIO, orbytes - Description: Path to the logo file or binary image data to be included in the PDF. You can use a file path string or pass image data directly.
- Example:
- Default: No logo.
Margins
- Type:
Margins - Fields:
top,right,bottom,left(all of typeNumber) - Description: Sets the page margins for the PDF document.
- Example:
- Default: top, right, bottom, and left are set to 5 mm.
Receipt Position
- Type:
ReceiptPosition(Enum) - Values:
TOP,BOTTOM,LEFT - Description: Position of the receipt section in the DACTE.
- Example:
- Default:
TOP
Decimal Configuration
- Type:
DecimalConfig - Fields:
price_precision,quantity_precision(bothint) - Description: Defines the number of decimal places for prices and quantities.
- Example:
- Default:
4for both fields.
Font Type
- Type:
FontType(Enum) - Values:
COURIER,TIMES - Description: Font style used throughout the PDF document.
- Example:
- Default:
TIMES
Watermark Cancelled
- Type:
bool - Description: When set to
True, displays a "CANCELADA" watermark on the DACTE for cancelled documents. - Example:
- Default:
False
Usage Example with Customization
Here's how to set up a DacteConfig object with a full set of customizations:
from brazilfiscalreport.dacte import (
Dacte,
DacteConfig,
DecimalConfig,
FontType,
Margins,
ReceiptPosition,
)
# Path to the XML file
xml_file_path = 'cte.xml'
# Load XML Content
with open(xml_file_path, "r", encoding="utf8") as file:
xml_content = file.read()
# Create a configuration instance
config = DacteConfig(
logo='path/to/logo.png',
margins=Margins(top=10, right=10, bottom=10, left=10),
receipt_pos=ReceiptPosition.BOTTOM,
decimal_config=DecimalConfig(price_precision=2, quantity_precision=2),
font_type=FontType.TIMES,
)
# Use this config when creating a Dacte instance
dacte = Dacte(xml_content, config=config)
dacte.output('output_dacte.pdf')