UNPKG

@ironsoftware/ironpdf

Version:

IronPDF for Node

73 lines (67 loc) 1.98 kB
import {ServiceError} from "@grpc/grpc-js"; import {IronPdfServiceClient} from "../../generated_proto/ironpdfengineproto/IronPdfService"; import {Access} from "../../access"; import {EmptyResultP__Output} from "../../generated_proto/ironpdfengineproto/EmptyResultP"; import { chunkBuffer, handleEmptyResultP__Output, handleRemoteException } from "../util"; import fs from "fs"; import {PdfDocumentResultP__Output} from "../../generated_proto/ironpdfengineproto/PdfDocumentResultP"; export async function toPdfA(id: string, customICCFilePath?: string): Promise<void> { const client: IronPdfServiceClient = await Access.ensureConnection(); return new Promise( (resolve: () => void, reject: (errorMsg: string) => void) => { const stream = client.Pdfium_ConvertToPdfA( ( err: ServiceError | null, value: PdfDocumentResultP__Output | undefined ) => { if (err) { reject(`${err.name}/n${err.message}`); } else if (value) { if (value?.exception) { handleRemoteException(value.exception, reject); }else{ resolve() } } } ); stream.write({info: {document: {documentId: id}}}) if (customICCFilePath) { chunkBuffer(fs.readFileSync(customICCFilePath)).forEach((chunk) => { stream.write({ iccBytesChunk: chunk }); }); } stream.end() } ); } export async function toPdfUA(id: string, naturalLanguages: number): Promise<void> { const client: IronPdfServiceClient = await Access.ensureConnection(); return new Promise( (resolve: () => void, reject: (errorMsg: string) => void) => { client.Pdfium_ConvertToPdfUA( { document: { documentId: id }, lang: naturalLanguages, }, ( err: ServiceError | null, value: EmptyResultP__Output | undefined ) => { if (err) { reject(`${err.name}/n${err.message}`); } else if (value) { handleEmptyResultP__Output(value, reject); resolve(); } } ); } ); }