2010-12-06 5 views
1

J'espère que certains pourront faire la lumière là-dessus. Il semble que je doive recompiler PDFBOX avec l'option [SERIALIZE]. Mais je n'ai aucune idée de comment.PDFBOX.net PDDocument Objet dans une base de données/sérialisation

Ce que j'essaie de faire est de stocker l'objet doc PDDocument dans une base de données.

ERREUR: tapez 'org.apache.pdfbox.pdmodel.PDDocument' dans Assembly 'PDFBox, Version = 0.0.0.0, Culture = neutre, PublicKeyToken = null' n'est pas marqué comme sérialisable.

PDDocument doc = (PDDocument)documents.get(d); 

    string str = ConvertForWrite(doc); 

    /// Convert any object into a string which can be store in a database 
    public string ConvertForWrite(object obj) 
    { 
     MemoryStream memoryStream = new MemoryStream(); 
     BinaryFormatter binaryFormatter = new BinaryFormatter(); 
     binaryFormatter.Serialize(memoryStream, obj); 
     string str = System.Convert.ToBase64String(memoryStream.ToArray()); 
     return str; 
    } 

Merci, Gavin

+0

Avez-vous vraiment besoin de l'objet document sérialisé? Pourquoi ne pas générer le fichier PDF et stocker ce fichier dans la base de données? –

Répondre

0

Je doute PDFBox est facile à transformer en une bibliothèque entièrement sérialisable.

Il ne suffira pas d'ajouter simplement une option: Alors que beaucoup de ses classes sont assez simples, d'autres référencent des fichiers temporaires ("fichiers de travail") portant leur contenu réel. Par conséquent, un code de sérialisation personnalisé serait nécessaire dans ces classes.

La façon la plus naturelle de sérialiser les données représentées par une instance et de désérialiser encore PDDocument serait de ... l'enregistrer comme document PDF et lire ce document dans une instance PDDocument! L'utilisation de flux de mémoire ne nécessite pas de fichiers système de fichiers réels.

Par conséquent, vous pouvez créer une classe wrapper pour PDDocument en utilisant les techniques Custom Serialization qui sont (dé) sérialisées en enregistrant/en lisant à partir d'un document PDF.

Questions connexes