1

ダウンロードせずにURLからpdfを読み込もうとしていますが、それを平坦化しようとしています。

これはコードです:

import java.io.FileOutputStream;

import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;

public class FormFillAndMakeItFlattenPDF {
   public static void main(String[] args) {
      try {
         PdfReader reader = new PdfReader("http://www.irs.gov/pub/irs-pdf/fw4.pdf");
         PdfStamper stamp2 = new PdfStamper(reader, new FileOutputStream("C:\\Flattened.pdf"));
         AcroFields form2 = stamp2.getAcroFields();
         stamp2.setFormFlattening(true);
         stamp2.close();
      }
      catch (Exception de) {
         de.printStackTrace();
      }
   }
}

ただし、これはエラー/例外をスローしています。これはスタックトレースです:

    java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377)
    at java.net.Socket.connect(Socket.java:530)
    at java.net.Socket.connect(Socket.java:480)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:406)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:541)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:245)
    at sun.net.www.http.HttpClient.New(HttpClient.java:318)
    at sun.net.www.http.HttpClient.New(HttpClient.java:335)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:832)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:773)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:698)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1021)
    at java.net.URL.openStream(URL.java:1009)
    at com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(Unknown Source)
    at com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(Unknown Source)
    at com.lowagie.text.pdf.PRTokeniser.<init>(Unknown Source)
    at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
    at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
    at FormFillAndMakeItFlattenPDF.main(FormFillAndMakeItFlattenPDF.java:18)

ここで私が間違っていることを誰か教えてもらえますか?

4

2 に答える 2

2

プロキシが原因で問題が発生する場合は、アプリケーションの起動時にこれを呼び出します。

System.setProperty("http.proxyHost", Config.PROXY_HOST);
System.setProperty("http.proxyPort", Config.PROXY_PORT);

Config.X をシステム値に変更します。

注: https の場合、https.proxyHost と https.proxyPort で同様の行を追加する必要があります

于 2012-11-12T08:56:34.373 に答える
1

あなたの正確なコードは私のために働きます。Java 7 を搭載した Windows で iText-4.2.0 (*) を使用しています。

これが私が実行したコードです。テストは緑色で、「Flattened.pdf」が正しく作成されています。

public class PdfTest {
    @Test
    public void testFlatten() throws Exception {
        PdfReader reader = new PdfReader("http://www.irs.gov/pub/irs-pdf/fw4.pdf");
        PdfStamper stamp2 = new PdfStamper(reader, new FileOutputStream("C:\\Users\\david\\Flattened.pdf"));
        AcroFields form2 = stamp2.getAcroFields();
        stamp2.setFormFlattening(true);
        stamp2.close();
    }
}

(*) https://github.com/ymasory/iText-4.2.0

于 2012-11-12T08:54:53.413 に答える