Как я могу объединить данные в файл XDP и вернуть PDF (через .NET)? - PullRequest
4 голосов
/ 18 ноября 2009

У моей команды есть шаблон (XDP), который мы создали с помощью дизайнера Adobe LiveCycle.

Ситуация:

  • Мы заменяем старую форму Acrobat (Формат XFDF) с этим LiveCycle форма как часть гораздо большего обновления

  • Текущая форма Acrobat динамически заполняется основными данными и доставляется пользователю в формате PDF (пользователь нажимает ссылку и PDF открывает на своей машине заранее заселенный с основными демографическими данными)

  • Текущий процесс выглядит примерно так: пользовательские щелчки, приложение .NET извлекает данные, приложение .NET извлекает PDF из файловой системы, приложение .NET сериализует данные в шаблон в форме XFDF, приложение ASP.NET отправляет ответ HTTP обратно к пользователю в формате XFDF, пользователь просматривает PDF в Adobe Reader

Мы хотели бы сохранить примерно аналогичный процесс с новым форматом XDP.

Для справки, у нас DO есть доступ к сервисам LiveCycle, которые выполняют эту работу (например, сервис Render). Тем не менее мы хотели бы создать этот тип сериализации в .NET по нескольким причинам: у нас ограничены лицензии LiveCycle и мы будем бороться за доступ к службам LiveCycle из-за их расположения на предприятии.

Любые мысли (даже "прекрати делать это, ты безумен") приветствуются.

Ответы [ 2 ]

3 голосов
/ 23 января 2010

Привет, извините за медленный ответ, не видел этого.

Создать PDF. Закодируйте его как base64.

Создать текстовый файл, foo.xdp:

<?xml version='1.0' encoding='UTF-8'?>
<?xfa generator='AdobeDesigner_V7.0' APIVersion='2.2.4333.0'?>
<xdp:xdp xmlns:xdp='http://ns.adobe.com/xdp/'>
    <xfa:datasets xmlns:xfa='http://www.xfa.org/schema/xfa-data/1.0/'>
        <xfa:data>

Вставьте сюда XML, который является вашими динамическими данными, в соответствии с динамическими полями в PDF.

        </xfa:data>
    </xfa:datasets>
    <pdf xmlns=\"http://ns.adobe.com/xdp/pdf/\"><document>
       <chunk>

Не помещая после тега никаких символов, вставьте PDF в кодировке base64.

        </chunk>
    </document></pdf>
</xdp:xdp>

И, о чудо, у вас есть действующий XDP. Adobe Reader примет это и отобразит PDF с вашими значениями.

В Java, если у вас есть Свойства с подробной информацией о соединении, следующий код может использовать Livecycle для преобразования XDP в PDF, хотя ваш пробег может отличаться в C #.

        // Create a ServiceClientFactory object
        ServiceClientFactory myFactory = ServiceClientFactory
                .createInstance(connectionProperties);

        // Create a PDF Utility client
        PDFUtilityServiceClient pdfClient = new PDFUtilityServiceClient(myFactory);

        // Specify an XDP file to convert to a PDF document
        ByteArrayInputStream bais = new ByteArrayInputStream(xdp.getBytes("ASCII"));
        Document inDoc = new Document(bais);

        // Convert the XDP file to a PDF document
        Document pdf = pdfClient.convertXDPtoPDF(inDoc);

        // Return the PDF as an InputStream.
        return pdf.getInputStream();
0 голосов
/ 05 января 2010

Похоже, вы ищете для рендеринга на стороне клиента - то, что я никогда не был в состоянии использовать в рабочем виде. И учитывая, что вы работаете в .Net, это, вероятно, сделает вещи невозможными ..

На мой взгляд, вам лучше всего будет использовать сервис рендеринга, который поставляется с Forms ES. Наверное, не очень помогает, но эй:)

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