Genera, modifica, memorizza ed esporta documenti nell'applicazione web [chiuso]

1

Quindi stavo pensando di scrivere un sistema di documento (layout?). Perché reinventare la ruota? Bene, voglio una ruota adatta al mio carrello. Sto facendo un'applicazione "più grande" basata sul web e ho bisogno di generare / modificare / distribuire molti tipi di documenti principalmente di testo. Un caso d'uso è:

Generate a prefilled letter that’s presented to the user, who edits the text-content slightly and the document gets stored to DB and sent off as PDF to some email-recipient

La ragione per cui mi sto chiedendo è se ci sono dei problemi che mi mancano o qualsiasi soluzione presente che non sono consapevole di ciò risolve questo in un modo più rapido / standardizzato!

Vorrei:

  • Visualizza questi nel browser (insieme ad altri contenuti web), con la semplice modifica e formattazione del testo di wysiwyg
  • Essere in grado di esportare il documento in PDF / Docx / HTML
  • Genera modelli di stratificazione, ad esempio: carta intestata dell'azienda X + layout di lettere predefinito + firme in basso
  • avere immagini in linea e avere colonne semplici (per dati tabulari / elenchi)
  • memorizzali in un database
  • Più pagine

Sto pensando di implementare l'intero documento come oggetto JSON e memorizzarlo in una colonna SQL. Qualsiasi linguaggio che può de / serializzare JSON potrebbe quindi gestire la costruzione del documento. Le immagini possono essere codificate in base64 (e forse comprimere l'oggetto finale?) I modelli possono essere i documenti stessi dove gli elementi hanno id: s in modo che possano essere riempiti a livello di programmazione ecc. Non sono sicuro di come la lunghezza degli elementi funzionerebbe o di posizionamento (forse% - posizionare tutto?). Un esportatore può essere scritto per ogni formato che definisce le posizioni ecc. (Pdf / doc / altro)

Breve esempio di concetto:

var document = {
    metadata: {version:1, createdAt:"", createdBy:""},
    styles: {},
    pages: [{
        elementFoo: {
            position:[100, 100],
            width:100,
            content: "Content of the text-element that can be <b>styled</b>"
        },
        elementBar: {
            position:[100, 200],
            width:20,
            content: "This might be an adress for a letterhead or a footer text or whatever other block"
    }]
}
    
posta BobbyTables 23.10.2015 - 14:13
fonte

0 risposte

Leggi altre domande sui tag