2012-03-21 2 views
1

Я работаю с IText на андроид, и это в основном мой сценарий:Android IText создание PDF

Выполнить вызов HTTP для получения данных XML Разобрать XML, чтобы получить строку в нем Используйте строку для создания PDF

Строка, которую я вынимаю из XML, кодирует pdf-данные, физически поступающие из другого PDF-файла в Интернете.

Я прошел процесс декодирования, так что его расшифрованная строка ... теперь мне просто нужно заставить ее написать в какой-то форме API, чтобы он мог корректно сохранять.

Сейчас я работаю с IText и когда я пытаюсь добавить пункт - это именно то, что я ожидал, и записывает строку (которая включает в себя тег, как его название и автор и т.д.)

Есть ли способ просто записать эту строку в PDF-документ и сохранить его правильно?

(Я удалил вопрос ранее об этом, чтобы перефразировать вопрос как можно лучше).

ответ

2

Попробуйте этот путь ...

try { 
     Document document = new Document(); 
     File root = new File(Environment.getExternalStorageDirectory(), 
       "foldername"); 
     String sdcardhtmlpath = root.getPath().toString() + "/filename.pdf"; 
     PdfWriter.getInstance(document, 
       new FileOutputStream(sdcardhtmlpath)); 
     document.open(); 
     Paragraph paragraph = new Paragraph("your string");//add ur string here 
     paragraph.setAlignment(Element.ALIGN_LEFT); 
     document.add(paragraph); 
     document.close(); 
    } catch (Exception e) { 
     Log.v("PDFcreation", e.toString()); 
    } 
+1

приятный работа .... –

0
public void createPDF() 
    { 
     Document doc = new Document(); 


     try { 
       String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "//pdf"; 

       File dir = new File(path); 
        if(!dir.exists()) 
         dir.mkdirs(); 

       Log.d("PDFCreator", "PDF Path: " + path); 


       File file = new File(dir, "sample1.pdf"); 
       FileOutputStream fOut = new FileOutputStream(file); 

       PdfWriter.getInstance(doc, fOut); 

       //open the document 
       doc.open(); 

       Paragraph p1 = new Paragraph("Hi! I am generating my first PDF using iText library"); 
       Font paraFont= new Font(Font.COURIER); 
       p1.setAlignment(Paragraph.ALIGN_CENTER); 
       p1.setFont(paraFont); 

       //add paragraph to document  
       doc.add(p1); 

       Paragraph p2 = new Paragraph("This is an example of a simple paragraph"); 
       Font paraFont2= new Font(Font.COURIER,14.0f,Color.GREEN); 
       p2.setAlignment(Paragraph.ALIGN_CENTER); 
       p2.setFont(paraFont2); 

       doc.add(p2); 

       ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
       Bitmap bitmap = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.android); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100 , stream); 
       Image myImg = Image.getInstance(stream.toByteArray()); 
       myImg.setAlignment(Image.MIDDLE); 

       //add image to document 
       doc.add(myImg); 

       //set footer 
       Phrase footerText = new Phrase("This is an example of a footer"); 
       HeaderFooter pdfFooter = new HeaderFooter(footerText, false); 
       doc.setFooter(pdfFooter); 



     } catch (DocumentException de) { 
       Log.e("PDFCreator", "DocumentException:" + de); 
     } catch (IOException e) { 
       Log.e("PDFCreator", "ioException:" + e); 
     } 
     finally 
     { 
       doc.close(); 
     } 

это простая программа по usinf droidText libary. Попробуйте это работать.

0
try{ 
     File obj=new File(Environment.getExternalStorageDirectory(),"pdf"); 
     if(!obj.exists()) 
     { 
      obj.mkdirs(); 
     } 
     String name=obj.getAbsolutePath()+"/mypdf.pdf"; 
     FileOutputStream fop=new FileOutputStream(name); 
     Document doc=new Document(); 

     PdfWriter.getInstance(doc, fop); 
     doc.open(); 
     Font font=new Font(FontFamily.TIMES_ROMAN, 20, Font.STRIKETHRU, BaseColor.GREEN); 
     Paragraph p=new Paragraph("sample pdf",font); 
     p.setAlignment(Element.ALIGN_LEFT); 

     doc.add(p); 
     doc.close(); 
     } 
     catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
     } 
Смежные вопросы