Проблемы генерации pdf Android - PullRequest
0 голосов
/ 21 сентября 2011

У меня проблемы с созданием файла PDF и сохранением его на SD, и я хотел бы, чтобы кто-нибудь предложил мне, что мне делать, следуйте тому, что я начал делать, если у них есть какие-либо примеры, я благодарен за отправку!

Мой класс, который пытается сгенерировать PDF:

public class TestActivity extends Activity {

    private static String FILE = "sdcard/exaple.pdf";
    private static final String TAG = "documentPDF"; 

/**
 * @see android.app.Activity#onCreate(Bundle)
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tela_relatorio);
    File Directory = new File(FILE); 
    try { 
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream(Directory));
        document.open();
        document.addAuthor("Name Author");
        addTitlePage(document);
        document.close();
    } catch (Exception e) {
        e.printStackTrace();
    } 
}

private void addTitlePage(Document document)throws DocumentException {
    Paragraph preface = new Paragraph();
    preface.add(new Paragraph("Document Title", null));
    document.add(preface);
document.newPage();
}
}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2011

Сотрудники смогли сгенерировать PDF в Android, мой код уже генерирует отчет PDF из базы данных! До свидания!

        public ArrayList<Visitantes> RelatorioPDF() {
    Document documento = new Document();
    ArrayList<Visitantes> lista = null;
    try {String sql_innerJoin = "SELECT Visitantes.id, Visitantes.nome, Visitantes.cpf, Visitantes.contato, Visitantes.foto"
                + " FROM Visitantes ";

        Cursor c = getReadableDatabase().rawQuery(sql_innerJoin, null);
        // Cursor c = getReadableDatabase().query(t,VisitantesDB.COLUNAS,
        // null, null, null, null, null,null);
        PdfWriter.getInstance(documento, new FileOutputStream(Environment.getExternalStorageDirectory()+ File.separator +"testeVisitante.pdf"));
        documento.open();
        documento.addAuthor("Tiago");

        lista = new ArrayList<Visitantes>();

        while (c.moveToNext()) {
            Visitantes visitante = new Visitantes();
            visitante.setId(c.getInt(0));
            visitante.setCpf(c.getString(1));
            visitante.setNome(c.getString(2));
            visitante.setContato(c.getString(3));
            visitante.setFoto(c.getString(4));
            documento.add(new Paragraph("Id:"+visitante.getId()));
            documento.add(new Paragraph("CPF:"+visitante.getCpf()));
            documento.add(new Paragraph("nome:"+visitante.getNome()));
            documento.add(new Paragraph("Contato:"+visitante.getContato()));
            documento.add(new Paragraph("|____________________________________|"));

            lista.add(visitante);
        }
        c.close();
        documento.addCreationDate();
        documento.close();
    } catch (Exception e) {
        Log.e("erro", e.toString());

    }
    return lista;
}
0 голосов
/ 21 сентября 2011

Редактировать: Кроме того, вы используете эту библиотеку для вашей функциональности PDF? http://sourceforge.net/projects/apwlibrary/

Я попробую сделать это и постараюсь ответить как можно лучше. Несколько замечаний, которые могут действительно помочь вашей разработке приложений, - сначала использовать правильный интервал кода. Так как это вопрос Android, я думаю, что вы разрабатываете в Eclipse, но малоизвестный, но удивительный ярлык - набрать Ctrl+A, чтобы выбрать весь ваш код, а затем использовать Ctrl+I, который будет правильно выравнивать ваш код так, чтобы он более читабельным. В этом случае мне удалось выяснить несколько вещей, которые МОГУТ не быть тем, что вы хотели

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tela_relatorio);
    File Directory = new File(FILE); 
    try { 
        //so here you  call your variable "document" but later...
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream(Directory));
        // you reference it as documento These are not the same but it looks like they should be
        documento.open();
        document.addAuthor("Name Author");
        addTitlePage(document);
        document.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
} 

private void addTitlePage(Document document)throws DocumentException {
    Paragraph preface = new Paragraph();
    preface.add(new Paragraph("Document Title", null));
    //once again, what is this supposed to reference to?
    documento.add(preface);
    documento.newPage();

}      

Итак, я недостаточно знаю о конкретных задействованных библиотеках, чтобы предлагать гораздо больше советов, чем этот, но, опять же, есть кое-что, что вы, возможно, не захотите. Другая проблема заключалась в том, что ваше утверждение try не содержало достаточно кода. :) Посмотрите внимательно на то, что вы пытаетесь сделать, а затем подумайте, как это сделать.

В любом случае, я думаю, что это должно как минимум избавить от любых ошибок времени компиляции, при условии, что у вас есть соответствующий импорт . О, еще один удобный ярлык, если вы используете Eclipse - Ctrl+Shift+I Он будет управлять вашими инструкциями импорта и поможет вам найти пакеты, которые вам нужно импортировать. Оттуда вам нужно будет найти ошибки, не связанные с ошибками компиляции

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tela_relatorio);
    File Directory = new File(FILE); 
    try { 
        Document document = new Document();

        PdfWriter.getInstance(document, new FileOutputStream(Directory));
        document.open();
        document.addAuthor("Name Author");
        addTitlePage(document);
        document.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
} 

private void addTitlePage(Document document) throws DocumentException {
    Paragraph preface = new Paragraph();
    preface.add(new Paragraph("Document Title", null));
    document.add(preface);
    document.newPage();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...