Rsync может исключить файлы, соответствующие определенным скороговоркам. Даже если Вы не можете изменить его, чтобы заставить его загрузить файлы на временный каталог, возможно, это имеет соглашение именования файлов по-другому во время загрузки (например: foo.downloading
при загрузке для файла, названного foo
) и можно использовать это свойство для исключения файлов, которые все еще загружаются с того, чтобы быть скопированным.
Хотя там есть поддержка MS Word в Apache POI, это не очень хорошо. Загрузка и последующее сохранение любого файла с форматированием, отличным от самого простого, скорее всего, приведет к искажению макета. Тем не менее, вам стоит попробовать, возможно, это сработает для вас.
Есть также ряд коммерческих библиотек, но я не знаю, есть ли какие-нибудь из них лучше.
Дерьмовое "решение", которое у меня было при работе над аналогичным требованием недавно пришлось использовать формат DOCX , открывать ZIP-контейнер, читать XML-документ документа и затем заменять мои маркеры правильными текстами. Это действительно работает для замены простых фрагментов текста без абзацев и т. Д.
private static final String WORD_TEMPLATE_PATH = "word/word_template.docx";
private static final String DOCUMENT_XML = "word/document.xml";
/*....*/
final Resource templateFile = new ClassPathResource(WORD_TEMPLATE_PATH);
final ZipInputStream zipIn = new ZipInputStream(templateFile.getInputStream());
final ZipOutputStream zipOut = new ZipOutputStream(output);
ZipEntry inEntry;
while ((inEntry = zipIn.getNextEntry()) != null) {
final ZipEntry outEntry = new ZipEntry(inEntry.getName());
zipOut.putNextEntry(outEntry);
if (inEntry.getName().equals(DOCUMENT_XML)) {
final String contentIn = IOUtils.toString(zipIn, UTF_8);
final String outContent = this.processContent(new StringReader(contentIn));
IOUtils.write(outContent, zipOut, UTF_8);
} else {
IOUtils.copy(zipIn, zipOut);
}
zipOut.closeEntry();
}
zipIn.close();
zipOut.finish();
Я не горжусь этим, но это работает.
Я бы посоветовал библиотеку Apache POI:
Если посмотреть подробнее - похоже, что она не обновлялась - Бу! Однако теперь он может быть достаточно полным, чтобы делать то, что вам нужно.
Попробуйте это: http://www.dancrintea.ro/doc-to-pdf/
Помимо замены строк в файлах ms word также можно: - чтение / запись файлов Excel с использованием упрощенного API, например: getCell (x, y) и setCell (x, y, string) - скрыть листы Excel (например, вторичные вычисления) - заменить изображения в файлах DOC, ODT и SXW - и конвертируем:
doc -> pdf, html, txt, rtf xls -> pdf, html, csv ppt -> pdf, swf
Я бы посмотрел на проект Apache POI. Это то, что я использовал в прошлом для взаимодействия с документами MS.
Thanks all. I am gonna try http://www.dancrintea.ro/doc-to-pdf/
because I need to convert classic DOC file(binary) and not DOCX(zip format).