Saya ditugaskan untuk membuat (atau mencari sesuatu yang sudah berfungsi) server terpusat dengan API yang memiliki kemampuan untuk mengembalikan file PDF dengan meneruskan beberapa data, dan nama templatnya, itu harus menjadi solusi yang kuat, perusahaan siap. Tujuannya adalah sebagai berikut:
- Serangkaian templat untuk berbagai hal perusahaan. (Faktur, Pesanan, Perencanaan Pesanan, dll)
- Cara mengembalikan PDF dari perangkat lunak eksternal (Situs Web, ERP, dll)
- Ini bisa menjadi solusi perusahaan yang sudah siap pakai, namun mereka mendesak untuk mencari solusi khusus.
- Bisa dalam bahasa apa pun, tapi kami tidak memiliki pemrogram Java khusus. Kami adalah PHP / .NET, beberapa dari kami mencoba-coba, namun kurva pembelajarannya mungkin sedikit curam.
Jadi, saya sudah membaca. Salah satu cara yang kami pikir mungkin dilakukan adalah menginstal server laporan jasper, dan membuat templat di Jaspersoft Studio, lalu menggunakan API untuk mengembalikan file PDF. Seorang kolega mendukung opsi ini, karena sebagian besar sudah selesai, tetapi 1º adalah java dan 2º menurut saya seperti menggunakan palu untuk memecahkan kacang.
Opsi lain yang telah kami mainkan adalah menggunakan C# dengan iTextSharp untuk membuat server, dan membuat API kami sendiri yang mengembalikan PDF dengan data yang kami perlukan. Dengan melakukan hal ini kita bisa mendapatkan beberapa manfaat, seperti menggunakan konektor database yang telah kita buat dan mengekstraksi sebagian besar data dari database, daripada harus meneruskan sejumlah besar data, namun karena data tersebut telanjang, sebenarnya tidak memiliki sistem templating. Kami akan membuat sesuatu dengan XMLWorker atau dengan kelas c# tetapi itu tidak "semudah" seperti drag dan drop. Untuk kasus ini saya sudah membaca tentang XFA juga, tapi dokumentasi di situs iText menyesatkan dan tidak jelas.
Saya juga telah membaca tentang beberapa alternatif lain, seperti PrinceXML, PDFBox, FOP, dll, tetapi konsepnya akan sama dengan iText , kami harus melakukannya sendiri.
Pilihan saya, meskipun lebih banyak pekerjaan yang harus dilakukan adalah menggunakan iText dan menggunakan HTML / CSS untuk templatnya, namun kolega saya mengklaim bahwa templat tersebut harus dapat diubah setiap dua minggu sekali (saya ragu itu), dan jadilah mudah. HTML/CSS akan terlalu merepotkan.
Jadi pertanyaan sebenarnya adalah, bagaimana pendekatan bisnis lain terhadap hal ini? Apakah saya melewatkan sesuatu dalam pencarian saya? Apakah ada cara yang lebih mudah untuk mencapai hal ini?
PS: Saya tidak tahu apakah SO akan menjadi tempat yang tepat untuk pertanyaan ini, tapi saya kebanyakan tersesat dan mempertaruhkan tag "pertanyaan yang terlalu luas" atau "di luar topik" sepertinya tidak terlalu buruk.
EDIT:
- Masukan harus dikirim dengan permintaan yang sama. Jika kita memutuskan rute C#, kita bisa mendapatkan ~70% data dari ERP secara langsung, namun bagaimanapun juga, ERP harus menerima permintaan kiriman dengan beberapa data (templat, dan data yang diperlukan untuk templat itu, seperti data faktur, atau ID faktur jika kita memiliki akses ke ERP).
- Outputnya harus berupa PDF (tidak tertarik dengan format lain, hanya PDF).
- Templat akan diperbarui hanya oleh TI. (Kebanyakan kami, tim pengembangan).
- Dari segi kinerja, saya tidak tahu berapa banyak tenaga yang kami perlukan, namun saat ini, tanpa peningkatan apa pun, kami melihat ~500/1000 PDF setiap hari, sebagian besar dicetak dari pukul 10 hingga 10.30 dan dari pukul 12 hingga 13. Lalu mungkin 100 lagi sepanjang sisa hari itu.
- Kinerja TOP tidak boleh lebih dari ~10.000 setiap hari ketika planet-planet sejajar, dan merupakan musim penjualan (dua kali setahun). Itu harus menjadi batas atas kita untuk tahun-tahun mendatang.
Templat memiliki beberapa persyaratan:
- Have repeating blocks (invoice lines, for example).
- Miliki gambar sebagai latar belakang, sebagai tanda air, dan sebagai blok.
- Harus multi bahasa (dapat diterjemahkan, dengan data yang sama).
- Miliki beberapa blok yang hanya ditampilkan dengan syarat.
- Blok bergantung pada halaman (header PDF / header halaman / footer halaman / footer PDF)
- Templat mungkin harus melakukan penghitungan terhadap beberapa data, menurut saya kita tidak akan memerlukannya, tetapi ini adalah sesuatu yang mungkin diminta oleh perusahaan di masa mendatang.
PDF tidak perlu disimpan, karena kami memiliki sistem manajemen dokumen, mungkin di masa mendatang kami dapat menghubungkannya.
Data tambahan: Saat ini kami menggunakan "Fast-Reports v2 VCL"