Nihai PDF sunucu tarafı oluşturmak için PDF formu ile XFDF'den birleşiyor?

3 Cevap php

Bu benim şu anda ne var:

  • Kullanıcı form verilerini sunar ve bir "PDF" bağlantısını alır.

  • Anında bir XFDF dosyası oluşturur ve uygun başlıkları, vb ayarladıktan sonra XFDF dosyayı çıkarır komut için bağlantı noktaları

  • XFDF dosya alanları doldurun XFDF verileri kullanır genel PDF şeklidir şifre korumalı PDF, puan.

Ne istiyorsunuz:

  • Kullanıcı "PDF" bağlantısını tıklar.

  • XFDF fly (sunucuya yazılmış dosya) oluşturulur.

  • PDF ve XFDF genel PDF kullanarak sunucu tarafı birleştirilir. Nihai PDF İçeriği XFDF başlangıçta olduğu gibi aynı kullanıcı için çıkış vardır.

  • XFDF ne de nihai PDF ne hiç sunucuya kaydedilir.

Ben FDF / XFDF dosyaları ile başa çıkmak için bir kaç seçenek vardır ki, pdftk bakıyordu, ama bütün bunlar bir) orijinal XFDF dosya sunucuda bir dosya olarak var ve b) bu ​​varsayalım husule PDF sunucu üzerinde bir dosya olarak çıkış olmalıdır.

Ayrıca, pdftk 4 yaşında.

Ben merak ediyordum:

a) orada Pdftk için yeni bir eşdeğer var mıydı?

bir yol veri sunucu üzerinde dosya biçiminde varlığını asla o kadar dinamik yolları kullanmak için, yeni bir pdftk gibi aracını kullanarak veya PDFTK kullanarak, orada b) olur?

Geçenlerde öğrendim php:// kullanarak giriş / çıkış akışları yerleşik ama ben hala onu nasıl kullanılacağı gerçekten bulanık değilim, ama belki bu iyi bir yer olurdu?

3 Cevap

(Siz pdfstore.com bazı bulabilirsiniz) bunu ticari uygulamalar vardır, ancak bazı programlama ile, PDF dosyalarını işlemek için kullanıyor Pdftk aynı kitaplığı kullanarak kendi oluşturabilirsiniz: iText (http://itextpdf.com/ . iTextSharp -) NET sürümü de vardır.

Bunu yaparak, size Java ya da. NET programdan verilerinize erişebilir, ve bu dosya biçiminde var ihtiyacı asla doğrudan veritabanından alabilir.

Ayrıca iText yeni bir sürümü ile pdftk yeniden derlemek olabilir - bu şekilde, size pdftk ile son PDF işleme yetenekleri ve kullanım kolaylığı sahip olabilir. Sen hala ancak XFDF dosyası gerekir.

Ben en khkremer bir tavsiyede kendimi aldı ve itextsharp kütüphanesine dayalı bir xfdf dosyadan PDF oluşturmak için C # bir küçük. Net exe inşa. Hala passthru kullanılarak çağrılabilir gerekir, ama güzel ve küçücük. Benim versiyonu da benim proje için bu işlevselliği gerekli beri pdf içine gizli bir alan eklemek için seçeneği vardır.

Sen iTextSharp.text.pdf derleme başvuru indirmek ve eklemek gerekir.

Umarım yardımcı olur!

 using System;
 using System.IO;
 using iTextSharp.text.pdf;

namespace PDFBrain
{
    class Program
    {
        // args:
        // 0 => template
        // 1 => xfdf
        // 2 => outputfile
        // 3 => flatten output file?
        static void Main(string[] args)
        {
            if (args == null)
            {
                Console.Out.WriteLine("No arguments were provided. Exiting.");
                return;
            }

            if (args[0] == "create")
            {
                if (args.Length != 5)
                {
                    Console.Out.WriteLine("Wrong number of arguments were provided. Exiting.");
                    return;
                }
                CreatePDF(args[1], args[2], args[3], args[4]);    
            }

            if (args[0] == "hidden")
            {
                if (args.Length != 3)
                {
                    Console.Out.WriteLine("Wrong number of arguments were provided. Exiting.");
                    return;
                }

                InsertHiddenIdField(args[1], args[2]);
            }

        }


public static void CreatePDF(string templ, string xfdf, string output, string flatten)
    {
        PdfReader template = new PdfReader(templ);

        XfdfReader xfdfReader = new XfdfReader(xfdf);

        PdfStamper stamper = new PdfStamper(template, new FileStream(output, FileMode.Create));
        stamper.AcroFields.SetFields(xfdfReader);

        stamper.FormFlattening = flatten == "true" ? true : false;

        stamper.Writer.CloseStream = false;
        stamper.Close();

    }

    public static void InsertHiddenIdField(string templ, string output)
    {
        PdfReader template = new PdfReader(templ);

        PdfStamper stamper = new PdfStamper(template, new FileStream(output, FileMode.Create));

        TextField clientID = new TextField(stamper.Writer, new iTextSharp.text.Rectangle(10,750,60,770), "hdnClientID");
        clientID.Visibility = BaseField.HIDDEN;

        stamper.AddAnnotation(clientID.GetTextField(),1);

        stamper.Close();            
    }
}

}

"Eğer Java verilerinize erişebilir" - :)) kolay yapmak için söylemek zor)))

I wrote a command line utility in Java, and a php example how to fill pdf forms dynamically on-the-fly (no files written to disk) on the sever side and serve filled in pdf documents to the browser: https://sourceforge.net/projects/pdfformfiller2/

Its input format is much simpler than XFDF.
Escaping (encoding) function are provided in the php example.
It fixes a bug in Adobe Reader UTF-8 support.