powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Генерация docx отчётов OpenSagres (проблема с includ'ом)
2 сообщений из 2, страница 1 из 1
Генерация docx отчётов OpenSagres (проблема с includ'ом)
    #38253618
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не встраивает.. :(


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
package testtemplating;

import fr.opensagres.xdocreport.core.XDocReportException;
import fr.opensagres.xdocreport.document.IXDocReport;
import fr.opensagres.xdocreport.document.registry.XDocReportRegistry;
import fr.opensagres.xdocreport.template.IContext;
import fr.opensagres.xdocreport.template.TemplateEngineKind;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestTemplating {

    private static final String //
            ROOT       = "C:\\Documents and Settings\\User\\Рабочий стол\\",
            FILE_IN    = ROOT + "test.docx",
            FILE_INSUB = ROOT + "sub.docx",
            FILE_OUT   = ROOT + "out.docx";

    public static void main(String[] args) throws IOException, XDocReportException {
        XDocReportRegistry registry = XDocReportRegistry.getRegistry();

        IXDocReport reportSub = registry.loadReport(
                new FileInputStream(FILE_INSUB),
                "sub",
                TemplateEngineKind.Freemarker);
        
        IXDocReport reportMain = registry.loadReport(
                new FileInputStream(FILE_IN),
                TemplateEngineKind.Freemarker);
        
        IContext data = reportMain.createContext();
        data.put("obt", 1);

//        registry.registerReport(reportSub); //already registred
        reportMain.process(data, new FileOutputStream(FILE_OUT));
        System.out.println("Обратка завершена");
    }
}



test.docx${obt}
[#include "sub"]
document.xml
Код: xml
1.
2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"><w:body><w:p w:rsidR="00A3724B" w:rsidRPr="00D6096A" w:rsidRDefault="00A3724B" w:rsidP="00D6096A"><w:pPr><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/></w:rPr></w:pPr><w:r w:rsidRPr="00D6096A"><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/></w:rPr><w:t>${obt}</w:t></w:r></w:p><w:p w:rsidR="00A3724B" w:rsidRPr="00D6096A" w:rsidRDefault="00A3724B" w:rsidP="00D6096A"><w:pPr><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/></w:rPr></w:pPr><w:r w:rsidRPr="00D6096A"><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/></w:rPr><w:t>[#include "sub"]</w:t></w:r></w:p><w:sectPr w:rsidR="00A3724B" w:rsidRPr="00D6096A" w:rsidSect="00D75023"><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1134" w:right="851" w:bottom="1134" w:left="1418" w:header="709" w:footer="709" w:gutter="0"/><w:cols w:space="708"/><w:docGrid w:linePitch="360"/></w:sectPr></w:body></w:document>



sub.docxstart subDocument
${obt}
end subDocument
document.xml
Код: xml
1.
2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"><w:body><w:p w:rsidR="00C31E4B" w:rsidRPr="00C27B08" w:rsidRDefault="00C31E4B" w:rsidP="00C27B08"><w:pPr><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/><w:lang w:val="en-US"/></w:rPr></w:pPr><w:r w:rsidRPr="00C27B08"><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/><w:lang w:val="en-US"/></w:rPr><w:t>start subDocument</w:t></w:r></w:p><w:p w:rsidR="00C31E4B" w:rsidRPr="00C27B08" w:rsidRDefault="00C31E4B" w:rsidP="00C27B08"><w:pPr><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/><w:lang w:val="en-US"/></w:rPr></w:pPr><w:r w:rsidRPr="00C27B08"><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/><w:lang w:val="en-US"/></w:rPr><w:t>${obt}</w:t></w:r></w:p><w:p w:rsidR="00C31E4B" w:rsidRPr="00C27B08" w:rsidRDefault="00C31E4B" w:rsidP="00C27B08"><w:pPr><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/><w:lang w:val="en-US"/></w:rPr></w:pPr><w:r w:rsidRPr="00C27B08"><w:rPr><w:sz w:val="28"/><w:szCs w:val="28"/><w:lang w:val="en-US"/></w:rPr><w:t>end subDocument</w:t></w:r></w:p><w:sectPr w:rsidR="00C31E4B" w:rsidRPr="00C27B08" w:rsidSect="00D75023"><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1134" w:right="851" w:bottom="1134" w:left="1418" w:header="709" w:footer="709" w:gutter="0"/><w:cols w:space="708"/><w:docGrid w:linePitch="360"/></w:sectPr></w:body></w:document>



stacktrace
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Exception in thread "main" java.lang.NullPointerException
	at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:481)
	at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:360)
	at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:235)
	at freemarker.template.Configuration.getTemplate(Configuration.java:578)
	at freemarker.core.Environment.getTemplateForInclusion(Environment.java:1490)
	at freemarker.core.Include.accept(Include.java:157)
	at freemarker.core.Environment.visit(Environment.java:221)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:221)
	at freemarker.core.EscapeBlock.accept(EscapeBlock.java:84)
	at freemarker.core.Environment.visit(Environment.java:221)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:221)
	at freemarker.core.Environment.process(Environment.java:199)
	at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.process(FreemarkerTemplateEngine.java:149)
	at fr.opensagres.xdocreport.template.freemarker.FreemarkerTemplateEngine.processWithCache(FreemarkerTemplateEngine.java:99)
	at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:111)
	at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:83)
	at fr.opensagres.xdocreport.document.AbstractXDocReport.processTemplateEngine(AbstractXDocReport.java:772)
	at fr.opensagres.xdocreport.document.AbstractXDocReport.process(AbstractXDocReport.java:518)
	at fr.opensagres.xdocreport.document.AbstractXDocReport.process(AbstractXDocReport.java:484)
	at testtemplating.TestTemplating.main(TestTemplating.java:37)
Java Result: 1


...
Рейтинг: 0 / 0
Генерация docx отчётов OpenSagres (проблема с includ'ом)
    #38253679
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам себе пожалуй отвечу. Фича не поддерживается.

https://groups.google.com/forum/#!topic/xdocreport/epA0MdgEwaM
Regards AngeloYou cannot use #include to merge several docx. Merging docx is more hard than a simple inclusion.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Генерация docx отчётов OpenSagres (проблема с includ'ом)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]