NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
В 2007 мой проект успешно использовал OpenOffice.org Универсальные Сетевые объекты интерфейс (UNO), чтобы программно генерировать MSWord совместимые документы (*.doc), а также соответствующие документы в формате PDF, из веб-приложения Java (платформа Struts/JSP).
OpenOffice ООН также позволяет Вам создать СОВМЕСТИМЫЕ С MS OFFICE диаграммы, электронные таблицы, представления, и т.д. Мы смогли динамично создать сложные документы Word, включая диаграммы и таблицы.
Мы упростили процесс при помощи документов шаблона MS-Word с закладкой, вставляет, в который программное обеспечение вставило содержание, однако, можно создать документы полностью с нуля. Цель состояла в том, чтобы иметь программное обеспечение, генерируют отчетные документы, которые могли совместно использовать и далее настроить конечные пользователи прежде, чем преобразовать их в PDF для заключительной доставки и архивирования.
можно дополнительно представить документы в форматах OpenOffice, если Вы хотите, чтобы пользователи использовали OpenOffice вместо MS Office. В нашем случае пользователи хотят использовать инструменты MS-Office.
ООН включена в комплекте OpenOffice. Мы просто связали наше приложение Java со связанными с ООН библиотеками в комплекте. Комплект разработчика программного обеспечения OpenOffice (SDK) доступен содержащий примеры приложений и Руководство разработчика ООН.
я не занялся расследованиями, может ли последний OpenOffice ООН генерировать MS Office 2 007 Открытых форматов XML-документа.
важные вещи о OpenOffice ООН:
Вот некоторые полезные веб-сайты:
Еще одна возможность, так как это - веб-приложение.
я смог представить страницу HTML с набором типа MIME к "приложению/MSWord", которое заставило браузер порождать Word, который импортировал HTML очень хорошо, позволив редактирования и сохранив так же, как если бы я произвел реальный документ в формате Word.
Таблицы хорошо работают, но изображения я еще не получил работу. Это может быть столь же легко как просто тег в HTML, или мне, вероятно, придется передать отдельную часть потоком ответа, содержащего данные изображения в двоичном файле или некоторый другой метод, который я еще не придумал.:)
После немного большего количества исследования я столкнулся iText, PDF и API создания RTF-файла. Я думаю, что могу использовать поколение RTF для создания читаемого Документом файла, который может тогда быть отредактирован с помощью Doc и повторно сохранен.
у Кого-либо есть опыт с iText, используемым этим способом?
Я разработал базирующиеся файлы слова чистого XML в прошлом. Я использовал.NET, но язык не должен иметь значения, так как это - истинно XML. Это не была самая легкая вещь сделать (имел проект, который потребовал его пара несколько лет назад.) Они действительно только работают в Word 2007 или выше - но все, в чем Вы нуждаетесь, является отчетом Microsoft, которые описывают то, что делает каждый тег. Можно выполнить все, что Вы хотите с тегами тот же путь, как будто Вы использовали Word (конечно, немного более болезненный первоначально.)
Существует инструмент под названием JODConverter, который сцепляется в открытый офис для представления, это - преобразователи формата файла, существуют версии, доступные как веб-приложение (находится у кота), который Вы отправляете на и инструмент командной строки. Я запускал HTML в него и преобразовывал в .doc и PDF успешно, это находится в довольно большом проекте, еще не пошли живые, но я думаю, что собираюсь быть использованием его. http://sourceforge.net/projects/jodconverter/
Можно использовать Java мост COM как JACOB. Если бы это от стороны клиента, другая опция состояла бы в том, чтобы использовать JavaScript.
Попробуйте Aspose. Слова для Java.
Aspose. Слова для Java являются усовершенствованной (коммерческой) библиотекой классов для Java, который позволяет Вам выполнить большой диапазон задач обработки документов непосредственно в рамках Ваших JAVA-приложений.
Aspose. Слова для Java поддерживают DOC, OOXML, RTF, HTML и форматы OpenDocument. С Aspose. Слова можно генерировать, изменить и преобразовать документы, не используя Microsoft Word.
Я думаю , ПОИ Apache может сделать задание. Возможная проблема в зависимости от использования, Ваше стремление к может быть вызвано тем, что HWPF находится все еще в ранней разработке.
HWPF является набором API для чтения и записи Microsoft Word 97 (-XP) документы с помощью (только) Java.
Я использовал Aspose. Слова , чтобы сделать слияние в.NET. Я полагаю, что у них также есть версия Java.
docx4j или пои, оба из которых являются ASL v2
@wondersofcomputing: iText на самом деле свободен и с открытым исходным кодом
iText действительно прост в использовании.
Если вы запрашиваете документы, вы можете вызвать abiword (бесплатный текстовый процессор с поддержкой нескольких операционных систем) из команды В строке есть несколько опций конвертирования формата преобразования.
После небольшого исследования я наткнулся на iText, API для создания PDF и RTF-файлов. Я думаю, что могу использовать поколение RTF для создания файла, читаемого в Doc, который затем можно редактировать с помощью Doc и повторно сохранять.
Кто-нибудь имеет опыт работы с iText, используемым таким образом?
Билл, POI и API iText очень похожи с точки зрения программирования. Я работал с обоими в прошлом и нашел их простыми в использовании и хорошо документированными.
С iText вы получаете возможность переключаться между форматами (RTF и PDF) с небольшими изменениями в коде. Если я правильно помню, контент создается с использованием тех же вызовов, а затем устанавливается в формате PDF или RTF с использованием нескольких строк кода.
Однако я считаю, что форматирование в RTF ограничено по сравнению с DOC. Я не знаю, если вы Вы сможете реализовать расширенные функции, которые вы ищете (таблицы, встроенные изображения) без особых хлопот, если вообще.
Учитывая то, что вы сказали, что у HWPF недостаточно функциональности для ваших нужд (я имел дело только со стороной POI в Excel), ваша лучшая ставка может заключаться в том, чтобы убедить силы в том, что PDF - лучшая технология. за работу .
Попробуйте Aspose.Words для Java, он работает в любой ОС, где установлена Java.
Он выводит документ в DOC, DOCX или RTF, если вам нужен выходной формат MS Word. Все они поддерживаются одинаково хорошо.
Используя этот API, вы можете создать документ с нуля, буквально из узлов и установить их свойства форматирования. Вы также можете использовать DocumentBuilder, который предоставляет методы более высокого уровня, такие как создание строки таблицы, вставка поля и т. Д. Или вы можете копировать / присоединять / перемещать части между существующим предварительно созданным документом, скажем, вы хотите собрать контракт, просто возьмите и скопируйте фрагменты из нескольких документов и Aspose.Words правильно объединят стили, форматирование списка и т. д. в итоговый документ.
Вы сможете вставить поле оглавления, используя Aspose.Words, но на сегодняшний день, поле TOC потребует обновления поля при открытии документа в Microsoft Word. Однако мы собираемся выпустить полную поддержку полей оглавления в начале 2010 г. Например, он будет создавать полное оглавление, как это делает MS Word.
Я в команде Aspose.Words.
Это упоминалось всего один раз, поэтому я хотел бы вызвать библиотеку docx4j, так как с docx4j я добился большего успеха, чем с чем-либо другим. Поддержка Apache POI документов Word не очень хороша. Кроме того, в отличие от Aspose.Words, docx4j является библиотекой с открытым исходным кодом.
Единственным недостатком является то, что с docx4j вы должны создавать документы формата Office Open XML (docx), а не документы формата OLE2 (doc). Это формат по умолчанию для Word 2007, но пользователям Word 2003 и более ранних версий потребуется установить пакет совместимости.
Несмотря на то, что это намного позже, чем запрос, это может помочь другим. Docmosis предоставляет Java API для создания документов в формате doc, pdf, odt, используя документы в качестве шаблонов. Он использует OpenOffice в качестве движка для выполнения преобразования форматов. Манипуляции с документами и их наполнение выполняются самим Docmosis.
Вы можете использовать это: http://code.google.com/p/java2word
Я реализовал этот API под названием Java2Word. с помощью нескольких строк кода вы можете сгенерировать один документ Microsoft Word.
Например:
IDocument myDoc = new Document2004();
myDoc.getBody().addEle(new Heading1("Heading01"));
myDoc.getBody().addEle(new Paragraph("This is a paragraph...")
Там есть несколько примеров использования. В основном вам понадобится один jar-файл. Дайте мне знать, если вам нужна дополнительная информация о том, как это настроить.
* Я написал это, потому что у нас была реальная необходимость в одном проекте. Больше в моем блоге:
http ://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html *
ура Leonardo
Edit : Проект в ссылке перемещен на https://github.com/leonardoanalista/java2word