A simple PDF processor using Ghostscript and WebAssembly.
npm install ghostscript-pdf-processor
bash
npm install ghostscript-pdf-processor
`
Usage Example
Here is a simple example to use the PDF processor in your React app:
`jsx
import { useState } from "react";
import { _processPDF } from "ghostscript-pdf-processor"; // Import the PDF processing function
function App() {
const [file, setFile] = useState(null);
const [downloadLink, setDownloadLink] = useState(null);
const [conversionType, setConversionType] = useState("compress");
const [statusMessage, setStatusMessage] = useState("Idle");
const handleFileChange = (event) => {
const uploadedFile = event.target.files[0];
if (uploadedFile) {
const fileURL = URL.createObjectURL(uploadedFile);
setFile({ name: uploadedFile.name, url: fileURL });
}
};
const processPDF = (pdfURL, filename) => {
setStatusMessage("Processing...");
_processPDF(
conversionType,
{ pdfDataURL: pdfURL },
(response) => {
const blob = new Blob([response.pdfDataURL], { type: "application/pdf" });
const downloadURL = URL.createObjectURL(blob);
setDownloadLink(downloadURL);
setStatusMessage("Processing complete!");
},
() => {},
(status) => setStatusMessage(status)
);
};
const handleSubmit = (event) => {
event.preventDefault();
if (file) processPDF(file.url, file.name);
};
return (
Simple PDF Processor
{statusMessage && {statusMessage}
}
{downloadLink && (
-${conversionType}.pdf)}>
Download Processed PDF
)}
);
}
export default App;
``