salesforce_node_pdf_api/usage-examples.md
2025-09-03 23:52:13 +05:30

185 lines
4.8 KiB
Markdown

# ZERO-WHITESPACE PDF Generator API - Usage Examples
## Overview
This API generates exact PDFs with zero whitespace and supports both A3 and A4 formats.
## Features
-**Zero Whitespace**: Complete elimination of unwanted spacing
-**Format Options**: A3 (297mm x 420mm) and A4 (210mm x 297mm)
-**Exact Output**: PDFs match HTML exactly without extra pages
-**Advanced HTML Processing**: Removes all unnecessary elements
-**Download Links**: Get direct download URLs for generated PDFs
## API Endpoints
### 1. Generate PDF
**POST** `/generate-pdf`
#### Request Body (JSON)
```json
{
"input": "<html>Your HTML content here</html>",
"output": "my-property-brochure",
"format": "A4",
"return_download_link": true
}
```
#### Parameters
- `input` (required): HTML content to convert to PDF
- `output` (optional): Custom filename (without extension)
- `format` (optional): "A3" or "A4" (default: "A4")
- `return_download_link` (optional): true/false (default: false)
#### Response (Download Link)
```json
{
"success": true,
"message": "ZERO-WHITESPACE A4 PDF generated successfully",
"download_url": "https://salesforce.tech4biz.io/download/property_brochure_A4_abc123.pdf",
"filename": "property_brochure_A4_abc123.pdf",
"format": "A4",
"file_size_mb": "2.45",
"expires_at": "2024-01-15T10:30:00.000Z",
"generated_at": "2024-01-08T10:30:00.000Z",
"pdf_id": "abc123",
"status": "download_ready",
"features": ["zero_whitespace", "exact_output", "minimal_margins"]
}
```
### 2. Health Check
**GET** `/health`
#### Response
```json
{
"status": "healthy",
"timestamp": "2024-01-08T10:30:00.000Z",
"version": "9.0.0-zero-whitespace-a3-a4",
"supported_formats": ["A3", "A4"],
"features": [
"zero_white_spaces",
"zero_margins",
"advanced_html_preprocessing",
"complete_css_reset",
"no_extra_pages",
"a3_a4_formats",
"exact_pdf_output",
"download_links",
"base64_response",
"infinite_timeouts",
"format_validation"
]
}
```
## Usage Examples
### Example 1: Generate A4 PDF with Download Link
```bash
curl -X POST http://localhost:8000/generate-pdf \
-H "Content-Type: application/json" \
-d '{
"input": "<html><body><h1>My Property</h1><p>Beautiful home for sale</p></body></html>",
"output": "property-brochure",
"format": "A4",
"return_download_link": true
}'
```
### Example 2: Generate A3 PDF with Download Link
```bash
curl -X POST http://localhost:8000/generate-pdf \
-H "Content-Type: application/json" \
-d '{
"input": "<html><body><h1>Large Property</h1><p>Spacious home with garden</p></body></html>",
"output": "large-property",
"format": "A3",
"return_download_link": true
}'
```
### Example 3: JavaScript/Node.js Usage
```javascript
const axios = require('axios');
async function generatePDF(htmlContent, format = 'A4') {
try {
const response = await axios.post('http://localhost:8000/generate-pdf', {
input: htmlContent,
format: format,
return_download_link: true
});
if (response.data.success) {
console.log('PDF Generated:', response.data.download_url);
return response.data.download_url;
}
} catch (error) {
console.error('Error:', error.response?.data?.error || error.message);
}
}
// Usage
const htmlContent = '<html><body><h1>My Property</h1></body></html>';
generatePDF(htmlContent, 'A4');
```
### Example 4: Python Usage
```python
import requests
import json
def generate_pdf(html_content, format='A4'):
url = 'http://localhost:8000/generate-pdf'
data = {
'input': html_content,
'format': format,
'return_download_link': True
}
response = requests.post(url, json=data)
if response.status_code == 200:
result = response.json()
if result['success']:
print(f"PDF Generated: {result['download_url']}")
return result['download_url']
else:
print(f"Error: {response.json().get('error', 'Unknown error')}")
# Usage
html_content = '<html><body><h1>My Property</h1></body></html>'
generate_pdf(html_content, 'A4')
```
## Key Improvements
### 1. Zero Whitespace
- Complete CSS reset eliminates all default browser spacing
- Advanced HTML preprocessing removes unnecessary whitespace
- Zero margins ensure exact PDF output
### 2. Format Support
- **A4**: 210mm x 297mm (standard document size)
- **A3**: 297mm x 420mm (larger format for detailed layouts)
### 3. Exact Output
- PDFs match HTML exactly without extra pages
- No unwanted spacing or margins
- Perfect page count matching
### 4. Advanced Processing
- Removes HTML comments and empty elements
- Eliminates whitespace between tags
- Optimizes content for PDF generation
## Testing
Run the test script to verify functionality:
```bash
node test-pdf-generation.js
```
This will test all preview templates with both A3 and A4 formats.