1.1.2 • Published 1 year ago

ghostscript-pdf-processor v1.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year 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

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago