1.1.2 • Published 10 months ago

ghostscript-pdf-processor v1.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

Ghostscript PDF Processor

A simple tool for compressing, converting to grayscale, or converting PDF files to CMYK using Ghostscript and WebAssembly.

Installation

First, install the package:

npm install ghostscript-pdf-processor

Usage Example

Here is a simple example to use the PDF processor in your React app:

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 (
    <div>
      <h1>Simple PDF Processor</h1>
      <form onSubmit={handleSubmit}>
        <input type="file" accept="application/pdf" onChange={handleFileChange} />
        <select onChange={(e) => setConversionType(e.target.value)} value={conversionType}>
          <option value="compress">Compress PDF</option>
          <option value="grayscale">Convert to Grayscale</option>
          <option value="cmyk">Convert to CMYK</option>
        </select>
        <button type="submit">Process PDF</button>
      </form>

      {statusMessage && <p>{statusMessage}</p>}

      {downloadLink && (
        <a href={downloadLink} download={file.name.replace(".pdf", `-${conversionType}.pdf`)}>
          Download Processed PDF
        </a>
      )}
    </div>
  );
}

export default App;
1.1.2

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago