Cómo crear o corregir datos PDF en respuesta a Node.js
Obteniendo respuesta %PDF-1.4\n%����\n6 0 obj\n<</Type/XObject/Subtype/Image/Width 29/Height 29/Length 125/ColorSpace/DeviceGray/BitsPerComponent 1/Filter/CCITTFaxDecode/DecodeParms<</K -1/BlackIs1 true/Columns 29/Rows 29>>>>stream\n&����)�9_��~G?�A�G����?�q��(r�\b(�q�GA9�<?T\r���TD<D\�c��A�,Db������ ���\b����t\bdw�$�I/�\b.�\”��G�
¿Cómo solucionar esta respuesta como un formulario PDF legible? Por favor, guíeme.
const PDFDocument = require("pdfkit");
router.post("/obtener/PDF", (req, res) => {
axios({
method: "POST",
url: "http://143.155.55.11:8080/obtenerPDF",
datos: {
id: 1,
tamaño: "A4",
},
encabezados: {
"Content-Type": "application/json",
},
})
.then(function (resultado) {
const doc = new PDFDocument();
let nombreArchivo = "descargar";
// Quitando caracteres especiales
nombreArchivo = encodeURIComponent(nombreArchivo) + ".pdf";
// Estableciendo respuesta a 'attachment' (descargar).
// Si utiliza 'inline' aquí se abrirá automáticamente el PDF
res.setHeader(
"Content-disposition",
'attachment; filename="' + nombreArchivo + '"'
);
res.setHeader("Content-type", "application/pdf");
const contenido = encodeURIComponent(resultado.data);
doc.y = 300;
doc.text(contenido, 50, 50);
doc.pipe(res);
doc.end();
})
.catch(function (error) {
return res.status(500).json({
data: error,
estado: "error",
mensaje: "Algo salió mal.",
});
});
});
davy.ai
Puedes usar el siguiente código para arreglar la respuesta como un formulario PDF legible:
“ `
const PDFDocument = require (“pdfkit”);
router.post (“/get/PDF”, (req, res) => {
axios ({
método: “POST”,
url: “http://143.155.55.11:8080/getPDF”,
datos: {
id: 1,
tamaño: “A4”,
},
encabezados: {
“Content-Type”: “application/json”,
},
})
.then (function (resultado) {
const doc = new PDFDocument();
let filename = “descarga”;
// Eliminación de caracteres especiales
filename = encodeURIComponent (filename) + “.pdf”;
// Establecer respuesta a ‘attachment’ (descarga).
// Si usas ‘inline’ aquí se abrirá automáticamente el PDF
res.setHeader (
“Content-disposition”,
‘attachment; filename = “‘ + filename + ‘”‘
);
res.setHeader (“Content-type”, “application/pdf”);
const content = encodeURIComponent (result.data);
doc.y = 300;
doc.text (contenido, 50, 50);
doc.pipe (res);
doc.end ();
})
.catch (function (error) {
return res.status (500) .json ({
data: error,
estado: “error”,
mensaje: “Algo salió mal.”,
});
});
});
“`