7

私は J2EE ベースのアプリケーションを使用しており、レポート ツールを使用して PDF 形式で出力を生成しています。PDFファイルをポストスクリプト形式に変換してプリンターに印刷できるようにするJavaのユーティリティ/ツールが必要です...私のアプリケーションはさまざまなOS(つまり、Windows / Linux / AIX)で実行されるため、プラットフォームに依存しないソリューションが不可欠です。私のレポート ツールは、PS 形式の出力をサポートしていません。ご意見をお聞かせください...

4

8 に答える 8

4

私の知る限り、これには間違いのない純粋な Java ソリューションがありますが、サーバー側で変換を行う場合は、Ghostscript のpdf2ps コンバーターを使用することをお勧めします。プラットフォーム固有のバージョンの Ghostscript をインストールする必要がある場合でも、言及されているすべてのプラットフォーム用のバージョンを見つける必要があります。

于 2010-01-15T16:08:40.033 に答える
0

Ghostscriptのような「exeベース」の別のソリューションはXpdfです
。PdfToPSPdfToPsは純粋なコマンドラインアプリケーションです。Win、Linux、Solarisで動作します。
http://www.foolabs.com/xpdf/

于 2010-01-26T13:04:21.557 に答える
0

PDF を印刷できる PDF ライブラリがいくつかあります。Postscript プリンターに出力し、ファイルへの出力オプションを使用すると、Postscript になる可能性があります。

于 2010-01-16T20:53:30.393 に答える
0

fop xslfo の使用 http://xmlgraphics.apache.org/fop/fop-pdf-images.html

fop test.fo -ps out.ps

test.fo:

<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

  <fo:layout-master-set>
    <fo:simple-page-master master-name="simple">
      <fo:region-body />
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="simple">
    <fo:flow flow-name="xsl-region-body">

   <fo:block>
    <fo:external-graphic src="my.pdf"/>
      </fo:block> 

    </fo:flow>
  </fo:page-sequence>
</fo:root>
于 2013-05-23T15:17:41.347 に答える
0

ありがとう、私はこのオプションを試してみて、pdf を postscript に変換することができました。私が直面している唯一の問題は、そのようなファイルをプリンターに送信しているときに、縦向きのページと横向きのページのように PDF の向きが混在している場合、変換された PostScript ファイルが縦向きモードまたは横向きモードのいずれかで印刷されることです。 . 印刷中に向きを自動的に処理する必要があります。

print ps ファイルのコード スニペット -

    DocPrintJob job = service.createPrintJob();
    try {
        PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
        File psFile = new File (psFilePath); 
        InputStream inputStream = new FileInputStream(psFile);
        Doc doc = new SimpleDoc(inputStream, DocFlavor.INPUT_STREAM.POSTSCRIPT ,null);
        job.print(doc, attributes);
    } catch (Exception e) {
        e.printStackTrace();
    }
于 2020-02-11T12:47:00.740 に答える
-1

jasper reportsの使用を検討してください。

さまざまな出力 (PDF、Html、RTF) でレポートを生成できます。

レポートをプリンターにエクスポートすることもできます。

編集:

PDF エクスポーターを使用するのではなく、JRPrintServiceExporterを使用してプリンターにエクスポートする簡単な例を次に示します。それは仕事をするように見えます。

于 2010-01-15T16:00:34.433 に答える
-1

たぶん、このコードが役立ちます:

try
    {
        DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
        String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
        StreamPrintServiceFactory[] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, psMimeType);

        System.out.println ("Available PS services: " + factories.length);

        if(factories.length == 0)
        {
            System.err.println ("No PS factories available!");
            System.exit(0);
        }

        // Open the PDF file
        PDFPrint pdfPrint = new PDFPrint ("test.pdf", null);

        // Open the output file
        FileOutputStream fos = new FileOutputStream("output.ps");

        // Use the first service available
        StreamPrintService sps = factories[0].getPrintService(fos);
        DocPrintJob pj = sps.createPrintJob();

        // Define paper size
        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
        aset.add(MediaSizeName.NA_LETTER);

        // Create simple doc using PDFPrint as Printable and print it
        SimpleDoc doc = new SimpleDoc(pdfPrint, flavor, null);
        pj.print(doc, aset);

        // Close the output PS stream
        fos.close();
    }
    catch (Throwable t)
    {
        t.printStackTrace();
    }
于 2013-02-06T08:17:45.180 に答える