Печать в Adobe AIR - Автономное создание PDF-файлов

StackOverflow https://stackoverflow.com/questions/53364

  •  09-06-2019
  •  | 
  •  

Вопрос

Можно ли создавать PDF-документы в приложении Adobe AIR, не прибегая к веб-сервису для создания PDF-файла в оба конца?Я просмотрел первоначальные отчеты Flex в GoogleCode, но для создания фактического PDF-файла требуется цикл туда и обратно.

Учитывая, что AIR должен быть рабочим столом для RIAs, есть ли способ добиться этого?Я подозреваю, что я что-то упускаю из виду, но мои поиски в документации не раскрывают слишком многого, и, учитывая цель AIR, я не могу поверить, что это просто что-то, чего они не включили.

Это было полезно?

Решение

Там есть AlivePDF ( Живой ), которая представляет собой библиотеку генерации PDF-файлов для ActionScript, которая должна работать, она была создана именно для той ситуации, которую вы описываете.

Другие советы

Только что добавлена демо-версия Adobe Air + Javascript + AlivePDF:

Эта демо-версия не делает требует гибкости и довольно прямолинейен.

http://www.drybydesign.com/2010/02/26/adobe-air-alivepdf-without-flex/

Одна из других команд, в которой я работаю, работает над приложением для рисования на основе Flex, и они были очень удивлены, что AIR / Flex не имеет встроенной программы для создания PDF-файлов.В итоге они создали свой собственный simple PDF creator на основе спецификации PDF.

Да, создать PDF-файл с помощью AlivePDF очень просто, вот пример кода, первый метод создает PDF-файл, а второй метод сохраняет PDF-файл на диск и возвращает путь, не стесняйтесь задавать любые вопросы.

public function createFlexPdf() : String
{
    pdf = new PDF();
    pdf.setDisplayMode (Display.FULL_WIDTH,Layout.ONE_COLUMN,Mode.FIT_TO_PAGE,0.96);
    pdf.setViewerPreferences(ToolBar.SHOW,MenuBar.HIDE,WindowUI.SHOW,FitWindow.RESIZED,CenterWindow.CENTERED);
    pdf.addPage();
    var myFontStyle:IFont = new CoreFont ( FontFamily.COURIER );
    pdf.setFont(myFontStyle,10);
        pdf.addText('Kamran Aslam',10,20);//String, X-Coord, Y-Coord 
    return savePDF();
}
private function savePDF():String
{
    var fileStream:FileStream = new FileStream();
    var file:File = File.createTempDirectory();
    file = file.resolvePath("temp.pdf");
    fileStream.open(file, FileMode.WRITE);
    var bytes:ByteArray = pdf.save(Method.LOCAL);
    fileStream.writeBytes(bytes);
    fileStream.close();
    return file.url;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top