3

GAE / Jで任意の種類のファイルを作成し、Googleドキュメントにアップロードすることは可能ですか?PDFの作成とアップロードについて、以前に同様の質問をしました。

ありがとう。

アップデート

Google Docs APIによると、「サーバーにドキュメントをアップロードするには、setFile()メソッドを使用してファイルを新しいDocumentListEntryに添付できます。」また、setFileメソッドには、GAE / J setFile(java.io.File file、java.lang.String mimeType)で受け入れられないjava.io.Fileが必要です。データを保存せずにアップロードできる解決策はありますか?setFile()メソッドを機能させるには、引数としてjava.io.Fileタイプが必要です。gaevfs(http://code.google.com/p/gaevfs/) +appengine-java-io(http://code.google.com/p/appengine-java-io/)を使用してみましたが、 appengine-java-io内のタイプFileが、setFile()メソッドで使用されるタイプFileと一致しません。

4

2 に答える 2

2

ドキュメント用の GData API を使用したい。API 自体に関する情報は、ここ(特にドキュメントのアップロードに関する部分) で見つけることができます。このリンクは、Google App Engine で動作するように設定するのに役立ちます。

于 2010-10-25T14:45:22.227 に答える
2

Nick Johnson のおかげで、GAE/J に PDF をアップロードする方法を見つけました。PdfEntry の setMediaSource() メソッドを知りませんでした。少なくとも例も、私が見つけたコードもありません。私はほとんどすべての例、解決策を試しましたが、最後に何か他のものを探しているときに別のコードを見つけました. 他の誰かがそれを必要とする場合の答えは以下です。ほとんどのコードは、pdfjet Web ページのサンプルから取得した PDF 生成です。助けてくれてありがとう。

        ByteArrayOutputStream os = new ByteArrayOutputStream();
        PDF pdf = new PDF(os);
        Font f1 = new Font(pdf, "Helvetica");
        Font f2 = new Font(pdf, "Helvetica-Bold");
        Font f3 = new Font(pdf, "Helvetica-Bold");
        pdf.setTitle("Using TextColumn and Paragraph classes");
        pdf.setSubject("Examples");
        pdf.setAuthor("Innovatics Inc.");
        Page page = new Page(pdf, Letter.PORTRAIT);
        f1.setSize(12);
        f2.setSize(16);
        f3.setSize(14);
        TextColumn column = new TextColumn(f1);
        Paragraph p1 = new Paragraph();
        p1.setAlignment(Align.CENTER);
        p1.add(new TextLine(f2, "Switzerland"));
        Paragraph p2 = new Paragraph();
        p2.add(new TextLine(f2, "Introduction"));
        Paragraph p3 = new Paragraph();
        p3.setAlignment(Align.JUSTIFY);
        TextLine text = new TextLine(f2);
        text.setText("The Swiss Confederation was founded in 1291 as a defensive alliance among three cantons. In succeeding years, other localities joined the original three. The Swiss Confederation secured its independence from the Holy Roman Empire in 1499. Switzerland's sovereignty and neutrality have long been honored by the major European powers, and the country was not involved in either of the two World Wars. The political and economic integration of Europe over the past half century, as well as Switzerland's role in many UN and international organizations, has strengthened Switzerland's ties with its neighbors. However, the country did not officially become a UN member until 2002. Switzerland remains active in many UN and international organizations but retains a strong commitment to neutrality.");
        text.setFont(f1);
        p3.add(text);
        Paragraph p4 = new Paragraph();
        p4.add(new TextLine(f3, "Economy"));
        Paragraph p5 = new Paragraph();
        p5.setAlignment(Align.JUSTIFY);
        text = new TextLine(f1);
        text.setText("Switzerland is a peaceful, prosperous, and stable modern market economy with low unemployment, a highly skilled labor force, and a per capita GDP larger than that of the big Western European economies. The Swiss in recent years have brought their economic practices largely into conformity with the EU's to enhance their international competitiveness. Switzerland remains a safehaven for investors, because it has maintained a degree of bank secrecy and has kept up the franc's long-term external value. Reflecting the anemic economic conditions of Europe, GDP growth stagnated during the 2001-03 period, improved during 2004-05 to 1.8% annually and to 2.9% in 2006. Even so, unemployment has remained at less than half the EU average.");
        p5.add(text);
        Paragraph p6 = new Paragraph();
        p6.setAlignment(Align.RIGHT);
        text = new TextLine(f1);
        text.setColor(RGB.BLUE);
        text.setText("Source: The world fact book.");
        text.setURIAction("https://www.cia.gov/library/publications/the-world-factbook/geos/sz.html");
        p6.add(text);
        column.addParagraph(p1);
        column.addParagraph(p2);
        column.addParagraph(p3);
        column.addParagraph(p4);
        column.addParagraph(p5);
        column.addParagraph(p6);
        column.setPosition(90, 300);
        column.setSize(470, 100);
        column.drawOn(page);
        pdf.flush();
        docsService.setOAuthCredentials(getOAuthParams(), new OAuthHmacSha1Signer());
        URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full/"+folderID+"/contents?xoauth_requestor_id="+user.getEmail());
        PdfEntry newDocument = new PdfEntry();
        newDocument.setCanEdit(true); 
        newDocument.setTitle(new PlainTextConstruct("Sample Report"));
        newDocument.setMediaSource(new MediaByteArraySource(os.toByteArray(), "application/pdf"));
        docsService.insert(feedUrl, newDocument);
于 2010-10-27T17:08:06.430 に答える