2010-10-25 16 views
3

Est-il possible de créer n'importe quel type de fichier sur GAE/J et de le télécharger sur google docs? J'ai déjà demandé un similar question avant de créer et de télécharger du PDF.Créer un fichier sur GAE/J et télécharger vers Google docs

Merci.

Mise à jour

Selon Google Docs API « pour télécharger un document sur le serveur, vous pouvez joindre le fichier à la nouvelle DocumentListEntry en utilisant la méthode setFile(). ». Et la méthode setFile nécessite java.io.File qui n'est pas accepté par GAE/J setFile (fichier java.io.File, java.lang.String mimeType). Y at-il une solution que je peux télécharger sans stocker de données. J'ai besoin du type java.io.File comme argument pour que la méthode setFile() fonctionne. J'ai essayé d'utiliser gaevfs (http://code.google.com/p/gaevfs/)+appengine-java-io(http://code.google.com/p/appengine-java-io/) mais le type de fichier dans appengine-java-io ne correspond pas au type Fichier utilisé dans la méthode setFile()

+0

double possible de [Envoi d'un fichier PDF à Google Docs généré par pdfjet sur GAE/J] (http://stackoverflow.com/questions/3996495/uploading-a-pdf-file-to-google- docs-généré-par-pdfjet-sur-gae-j) –

+0

S'il vous plaît ne pas poster des questions en double - mettre à jour votre question existante si vous avez plus de détails. –

Répondre

2

Merci à Nick Johnson je trouve la façon de télécharger des PDF sur GAE/J. J'étais pas au courant de la méthode setMediaSource() pour PdfEntry.Au moins les exemples ou les codes que j'ai trouvés.J'ai essayé presque tous les exemples, solution mais finalement j'ai trouvé un autre code en cherchant autre chose. d'autre qui a besoin de la réponse er est ci-dessous. La plupart du code est la génération de PDF qui est prise à partir des échantillons de pdfjet webpage Merci à tous pour l'aide.

 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); 
2

Vous souhaitez utiliser les API GData pour les documents. l'API se here (en particulier la partie sur Uploading Documents) et this link seront utiles pour la mise en place pour travailler dans Google App Engine.

+0

Il n'y a pas de problème lors du téléchargement, le problème est de créer un fichier dans GAE/J. GAE ne permet pas de créer un fichier, donc je peux définir l'argument du fichier dans l'API Google Docs. –

+0

Les fichiers sont juste des taches de données stockées dans un système de fichiers. Vous n'avez pas besoin de stocker vos données dans un système de fichiers. Il suffit de les créer dans votre application App Engine et de les télécharger directement. –