Afip SDK
GitHubHomeComunidadBlog
  • 📖Documentación
  • Paso a paso
    • 🎯Instalacion
    • ☁️Web services
      • 💵Factura electrónica
        • Crear PDF
        • Código QR
        • Factura A
        • Factura B
        • Factura C
        • Factura de Crédito electrónica A
        • Factura de Crédito electrónica B
        • Factura de Crédito electrónica C
        • Nota de Crédito A
        • Nota de Crédito B
        • Nota de Crédito C
      • 📑Padrón de constancia de inscripción
      • 📑Padrón alcance 10
      • 📑Padrón alcance 13
      • 💸Factura MiPyME
      • 🔎Constatación de Comprobantes
      • ✉️Carta de Porte Electrónica
      • 🏨Comprobantes de Turismo
      • 💸Factura de Exportación
      • 🥩Remito cárnico
      • 🛠️Otro web service
    • 📚Tutoriales página de ARCA
      • 🔑Habilitar administrador de certificados de testing
      • 📜Obtener certificado de testing
      • ✅Autorizar web service de testing
      • 🔑Habilitar administrador de certificados de producción
      • 📜Obtener certificado de producción
      • ✅Autorizar web service de producción
      • 💳Crear punto de venta
      • 🤝Delegar web service
      • 👍Aceptar delegación de web service
    • ⚙️Otros métodos útiles
    • 🚀Ir a producción
  • Ayuda
    • ⁉️Preguntas frecuentes
    • 🐞Errores frecuentes
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. Paso a paso
  2. Web services
  3. Factura electrónica

Crear PDF

AnteriorFactura electrónicaSiguienteCódigo QR

Última actualización hace 6 meses

¿Te fue útil?

Los PDFs creados con el SDK duran 24hs. Debes descargar el archivo antes de que expire la URL

HTML de ejemplo

(async () => {
	// Descargamos el HTML de ejemplo (ver mas arriba)
	// y lo guardamos como bill.html
	const html = require('fs').readFileSync('./bill.html', 'utf8');
	
	// Nombre para el archivo (sin .pdf)
	const name = 'PDF de prueba';
	
	// Opciones para el archivo
	const options = {
		width: 8, // Ancho de pagina en pulgadas. Usar 3.1 para ticket
		marginLeft: 0.4, // Margen izquierdo en pulgadas. Usar 0.1 para ticket 
		marginRight: 0.4, // Margen derecho en pulgadas. Usar 0.1 para ticket 
		marginTop: 0.4, // Margen superior en pulgadas. Usar 0.1 para ticket 
		marginBottom: 0.4 // Margen inferior en pulgadas. Usar 0.1 para ticket 
	};
	
	// Creamos el PDF
	const res = await afip.ElectronicBilling.createPDF({
		html: html,
		file_name: name,
		options: options
	});
	
	// Mostramos la url del archivo creado
	console.log(res.file);
})();
// Descargamos el HTML de ejemplo (ver mas arriba)
// y lo guardamos como bill.html
$html = file_get_contents('./bill.html');

// Nombre para el archivo (sin .pdf)
$name = 'PDF de prueba';
	
// Opciones para el archivo
$options = array(
	"width" => 8, // Ancho de pagina en pulgadas. Usar 3.1 para ticket
	"marginLeft" => 0.4, // Margen izquierdo en pulgadas. Usar 0.1 para ticket 
	"marginRight" => 0.4, // Margen derecho en pulgadas. Usar 0.1 para ticket 
	"marginTop" => 0.4, // Margen superior en pulgadas. Usar 0.1 para ticket 
	"marginBottom" => 0.4 // Margen inferior en pulgadas. Usar 0.1 para ticket 
);

// Creamos el PDF
$res = $afip->ElectronicBilling->CreatePDF(array(
	"html" => $html,
	"file_name" => $name,
	"options" => $options
));

// Mostramos la url del archivo creado
var_dump($res['file']);
# Descargamos el HTML de ejemplo (ver mas arriba)
# y lo guardamos como bill.html
html = File.read("./bill.html")

# Nombre para el archivo (sin .pdf)
name = "PDF de prueba"

# Opciones para el archivo
options = {
  "width": 8, # Ancho de pagina en pulgadas. Usar 3.1 para ticket
  "marginLeft": 0.4, # Margen izquierdo en pulgadas. Usar 0.1 para ticket 
  "marginRight": 0.4, # Margen derecho en pulgadas. Usar 0.1 para ticket 
  "marginTop": 0.4, # Margen superior en pulgadas. Usar 0.1 para ticket 
  "marginBottom": 0.4 # Margen inferior en pulgadas. Usar 0.1 para ticket 
}

# Creamos el PDF
res = afip.ElectronicBilling.createPDF({
  "html": html,
  "file_name": name,
  "options": options
})

# Mostramos la url del archivo creado
puts res["file"]
# Descargamos el HTML de ejemplo (ver mas arriba)
# y lo guardamos como bill.html
html = open("./bill.html").read()

# Nombre para el archivo (sin .pdf)
name = "PDF de prueba"

# Opciones para el archivo
options = {
  "width": 8, # Ancho de pagina en pulgadas. Usar 3.1 para ticket
  "marginLeft": 0.4, # Margen izquierdo en pulgadas. Usar 0.1 para ticket 
  "marginRight": 0.4, # Margen derecho en pulgadas. Usar 0.1 para ticket 
  "marginTop": 0.4, # Margen superior en pulgadas. Usar 0.1 para ticket 
  "marginBottom": 0.4 # Margen inferior en pulgadas. Usar 0.1 para ticket 
}

# Creamos el PDF
res = afip.ElectronicBilling.createPDF({
  "html": html,
  "file_name": name,
  "options": options
})

# Mostramos la url del archivo creado
print(res["file"])

Endpoint

POST https://app.afipsdk.com/api/v1/pdfs

Ejemplo

{
    "html": "<p style='text-align:center'>Hello World</p>",
    "file_name": "PDF de prueba",
    "options" : {
        "width": 8,
        "marginLeft": 0.4,
        "marginRight": 0.4,
        "marginTop": 0.4,
        "marginBottom": 0.4
      }
}

Response

STATUS 200

{
    "id": "0ad3e4b0-8af3-4bea-b9ac-303fd4fd4a9b",
    "file": "https://storage.googleapis.com/a2p-v2-storage/74213a36-5966-40f2-8b73-298918f67969",
    "file_expiration": "2024-03-14T13:02:20.419Z",
    "file_name": "Pdf de prueba",
    "created_at": "2024-03-13T13:02:20.419Z"
}

HTML de ejemplo

☁️
💵
https://gist.github.com/AfipSDK/fb05e5bfd059e9bf7fc6045de426ae7f
https://gist.github.com/AfipSDK/60604af781826b0d0438042ae807cc91
44KB
Ticket.pdf
pdf
72KB
Pdf de prueba.pdf
pdf