2016-10-27 3 views
0

je suis en train de convertir doc en html en utilisant le code suivantConvertir .doc avec des images à l'aide .html xdocreport

private static final String docName = "This is a test page.docx"; 
private static final String outputlFolderPath = "C://"; 
String htmlNamePath = "docHtml1.html"; 
String zipName="_tmp.zip"; 
static File docFile = new File(outputlFolderPath+docName); 
File zipFile = new File(zipName); 

public void ConvertWordToHtml() { 
    try { 
     InputStream doc = new FileInputStream(new File(outputlFolderPath+docName)); 
     System.out.println("InputStream"+doc); 
     XWPFDocument document = new XWPFDocument(doc); 
     XHTMLOptions options = XHTMLOptions.create(); //.URIResolver(new FileURIResolver(new File("word/media")));; 
     String root = "target"; 
     File imageFolder = new File(root + "/images/" + doc); 
     options.setExtractor(new FileImageExtractor(imageFolder)); 
     options.URIResolver(new FileURIResolver(imageFolder)); 
     OutputStream out = new FileOutputStream(new File(htmlPath())); 
     XHTMLConverter.getInstance().convert(document, out, options); 
    } catch (Exception ex) { 

    } 
} 

public static void main(String[] args) throws IOException, ParserConfigurationException, Exception { 
    Convertion cwoWord=new Convertion(); 
    cwoWord.ConvertWordToHtml();  

} 


public String htmlPath(){ 
    return outputlFolderPath+htmlNamePath; 
} 

public String zipPath(){ 
    // d:/_tmp.zip 
    return outputlFolderPath+zipName; 
} 

code ci-dessus est de convertir doc en html bien. Le problème vient quand j'essaye de convertir un dossier de doc qui a des graphiques aiment le cercle (montré dans la capture d'écran), dans ce cas, les graphiques ne montrent pas dans le dossier de HTML.

enter image description here

S'il vous plaît, aidez-moi comment pouvons-nous maintenir graphiques de doc dans le fichier html et après la conversion. Merci à l'avance

+1

Avez-vous un coup d'oeil à l'adresse http: // stackoverflow .com/questions/37745615/org-apache-poi-xwpf-convertisseur-xhtml-xhtmlconverter-not-generation-images, mais en général, veuillez noter que cette fonctionnalité n'est pas fournie par Apache POI, mais plutôt https: // github. com/opensagres/xdocreport, malheureusement ils utilisent l'espace de noms org.apache qu'ils ne devraient pas! – centic

+0

@centic: Merci pour la réponse, j'ai déjà regardé un lien donné, je suis capable de convertir des images à l'intérieur de doc, mais pas les graphiques qui est attaché ci-dessus – swapnil

Répondre

0

Vous pouvez intégrer les images dans le code HTML en utilisant le code suivant:

Base64ImageExtractor imageExtractor = new Base64ImageExtractor(); 
options.setExtractor(imageExtractor); 
options.URIResolver(imageExtractor); 

où Base64ImageExtractor ressemble:

public class Base64ImageExtractor implements IImageExtractor, IURIResolver { 

    private byte[] picture; 

    public void extract(String imagePath, byte[] imageData) throws IOException { 
     this.picture = imageData; 
    } 

    private static final String EMBED_IMG_SRC_PREFIX = "data:;base64,"; 


    public String resolve(String uri) { 
     StringBuilder sb = new StringBuilder(picture.length + EMBED_IMG_SRC_PREFIX.length()) 
       .append(EMBED_IMG_SRC_PREFIX) 
       .append(Base64Utility.encode(picture)); 
     return sb.toString(); 
    } 
}