iText – Добавление таблицы
В этой главе мы увидим, как создать PDF-документ и добавить в него таблицу с помощью библиотеки iText.
Добавление таблицы в PDF
Вы можете создать пустой PDF-документ, создав экземпляр класса Document . При создании экземпляра этого класса вам необходимо передать объект PdfDocument в качестве параметра его конструктору. Затем, чтобы добавить таблицу в документ, вам нужно создать экземпляр класса Table и добавить этот объект в документ с помощью метода add () .
Ниже приведены шаги для создания документа PDF с таблицей в нем.
Шаг 1: Создание объекта PdfWriter
Класс PdfWriter представляет DocWriter для PDF. Этот класс принадлежит пакету com.itextpdf.kernel.pdf . Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.
Создайте экземпляр класса PdfWriter , передав строковое значение (представляющее путь, по которому вам нужно создать PDF), в его конструктор, как показано ниже.
Когда объект этого типа передается в PdfDocument (класс), каждый элемент, добавленный в этот документ, будет записан в указанный файл.
Шаг 2: Создание объекта PdfDocument
Класс PdfDocument – это класс, который представляет документ PDF в iText. Этот класс принадлежит пакету com.itextpdf.kernel.pdf . Чтобы создать экземпляр этого класса (в режиме записи), вам нужно передать объект класса PdfWriter его конструктору.
Создайте экземпляр класса PdfDocument, передав вышеупомянутый созданный объект PdfWriter его конструктору, как показано ниже.
После создания объекта PdfDocument вы можете добавить различные элементы, такие как страница, шрифт, вложение файла и обработчик события, используя соответствующие методы, предоставляемые его классом.
Шаг 3: Создание объекта Document
Класс Document пакета com.itextpdf.layout является корневым элементом при создании самодостаточного PDF. Один из конструкторов этого класса принимает объект класса PdfDocument .
Создайте экземпляр класса Document , передав объект класса PdfDocument, созданный на предыдущих шагах, как показано ниже.
Шаг 4: Создание объекта Table
Класс Table представляет собой двумерную сетку, заполненную ячейками, упорядоченными по строкам и столбцам. Он принадлежит пакету com.itextpdf.layout.element .
Создайте класс Table, как показано ниже.
Шаг 5: Добавление ячеек в таблицу
Создайте объект ячейки, создав экземпляр класса Cell пакета com.itextpdf.layout.element . Добавьте содержимое ячейки, используя метод add () этого класса.
Наконец, чтобы добавить эту ячейку в таблицу, вызовите метод addCell () класса Table и передайте объект ячейки в качестве параметра этому методу, как показано ниже.
Шаг 6: Добавление таблицы в документ
Добавьте объект таблицы, созданный на предыдущем шаге, используя метод add () класса Document, как показано ниже.
Шаг 7: Закрытие документа
Закройте документ с помощью метода close () класса Document , как показано ниже.
пример
Следующая Java-программа демонстрирует, как создать PDF-документ и добавить в него таблицу с помощью библиотеки iText. Он создает документ в формате PDF с именем добавление Table.pdf , добавляет к нему таблицу и сохраняет его по пути C: / itextExamples /.
Сохраните этот код в файле с именем AddingTable.java .
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:
После выполнения вышеуказанная программа создает документ PDF, отображающий следующее сообщение.
Если вы проверите указанный путь, вы можете найти созданный PDF-документ, как показано ниже.
Создание таблиц
Таблицы состоят из строк и столбцов, которые в свою очередь состоят из ячеек. Ячейка напоминает текстовый фрейм, в который можно добавлять текст, привязанные фреймы или другие таблицы. Таблицы можно создавать в Adobe InDesign CS5 или экспортировать из других приложений.
Для создания, изменения и форматирования таблиц в Adobe InCopy необходимо переключиться в режим «Макет».
Создание таблиц
Таблицы состоят из строк и столбцов, которые в свою очередь состоят из ячеек. Ячейка напоминает текстовый фрейм, в который может быть добавлен текст, внутритекстовый графический объект или другие таблицы. Создать таблицу можно обычным способом или путем преобразования в нее существующего текста. Кроме того, таблица может быть встроена в другую таблицу.
Новая таблица при создании заполняет всю ширину текстового фрейма-контейнера. Если при вставке точка ввода находится в начале строки, то таблица вставляется на той же строке, если точка ввода находится в середине — на следующей строке.
Обтекание таблиц текстом производится так же, как и для внутристрочных графических объектов. В частности, при добавлении и удалении расположенного выше текста, а также при изменении его кегля таблица будет перемещаться по фреймам в цепочке. Однако таблица не отображается на фрейме с текстом по контуру.
Вертикальные таблицы создаются так же, как горизонтальные. Направление письма таблицы зависит от направления письма текстового фрейма, используемого для создания таблицы, и направление письма таблицы изменяется, когда изменяется направление письма текстового фрейма. То же самое происходит при создании таблицы в сетке фрейма. Однако направление письма для ячеек в таблице можно изменить независимо от направления письма таблицы.
Подтвердите направление письма текстового фрейма перед созданием таблицы.
Майкл Мёрфи (Michael Murphy) представляет статью о создании и форматировании таблиц: Особенности использования таблиц.
Джефф Уитчел (Jeff Witchel) из InfiniteSkills.com представил видео на тему Основы настройки таблиц.
Создание таблицы обычным способом
Созданная таблица заполняет весь текстовый фрейм по ширине.
С помощью инструмента «Текст» поместите точку ввода туда, где необходимо создать таблицу.
Высота строки таблицы определяется выбранным стилем таблицы. Например, для форматирования различных частей таблицы могут использоваться различные стили ячеек, определенные в стиле таблицы. Если стили ячеек содержат стили абзацев, то высота строки в этой области будет определяться значением интерлиньяжа в стиле абзаца. Если стили абзацев не используются, то высота строки определяется значением служебного поля по умолчанию в документе. Служебное поле определяется значением интерлиньяжа. В данном контексте служебное поле примерно равно высоте подсветки выделенного текста.
Создание таблицы из существующего текста
Перед преобразованием текста в таблицу убедитесь, что он соответствующим образом подготовлен.
Выберите инструмент «Текст» и выделите текст, который необходимо преобразовать в таблицу.
Если в какой-либо строке элементов меньше, чем столбцов в таблице, то оставшиеся ячейки будут пустыми.
Встраивание одной таблицы в другую
Выделите ячейки или таблицу для встраивания в другую таблицу, затем выберите команду «Редактирование» > «Вырезать» или «Скопировать». Поместите точку ввода в ячейку, куда должна быть вставлена таблица, затем выберите команду «Редактирование» > «Вставить».
Нажмите ячейку, выберите команду «Таблица» > «Вставить таблицу», задайте число строк и столбцов, затем нажмите кнопку «ОК».
При создании таблицы в ячейке нельзя выделить мышью часть таблицы за пределами ячейки. В этом случае необходимо расширить строку или столбец либо поместить точку ввода в первую часть таблицы, а затем при помощи комбинаций клавиш переместить точку ввода и выделить текст.
Импорт таблиц из других приложений
При импорте электронной таблицы Microsoft Excel или документа Microsoft Word с таблицами с помощью команды «Поместить» данные импортируются в виде таблицы, доступной для редактирования. Форматирование настраивается в диалоговом окне «Параметры импорта».
Кроме того, данные из электронной таблицы Excel или таблицы Word можно вставлять в документы InDesign или InCopy. Формат текста, вставляемого из других приложений, задается установками раздела «Обработка буфера». Если выбран параметр «Только текст», то данные отображаются в виде неотформатированного текста с табуляцией, который затем можно преобразовать в таблицу. Если выбран параметр «Вся информация», то вставляемый текст будет отображаться в отформатированной таблице.
Если текст вставляется в существующую таблицу из другого приложения, создайте в ней достаточное для его размещения число строк и столбцов, в установках раздела «Обработка буфера» выберите «Только текст» и убедитесь, что выделена хотя бы одна ячейка (за исключением случаев, когда в ячейку необходимо вставить всю таблицу).
Если нужен больший контроль над форматированием импортируемой таблицы или необходимо сохранить форматирование электронной таблицы, лучше произвести ее импорт командой «Поместить». Если необходимо создать связь с форматированием электронной таблицы, выберите параметр «Создавать связи при размещении текстовых и табличных файлов» в настройках «Обработка файлов».
Можно также скопировать и вставить текст, разделенный символами табуляции, в диапазон ячеек таблицы. Этим способом удобно заменять содержимое при необходимости сохранить форматирование. Предположим, вам нужно обновить содержимое отформатированной таблицы в ежемесячном журнале. Одним из вариантов является связь с электронной таблицей Excel. Однако, если содержимое происходит из другого источника, можно скопировать текст с табуляцией в буфер обмена, выделить диапазон ячеек в отформатированной таблице InDesign и вставить в него содержимое.
Добавление текста в таблицу
Ячейка таблицы может содержать текст, привязанные объекты, XML-теги и другие таблицы. При вставке текста высота строки таблицы будет соответствующим образом увеличена, за исключением случаев, когда для строки задана фиксированная высота. В таблицы нельзя вставлять сноски.
С помощью инструмента «Текст» выполните одно из следующих действий:
Поместите точку ввода в ячейку и введите текст. Чтобы создать новый абзац в той же ячейке, нажмите клавишу Enter или Return. Перемещение по ячейкам производится по нажатию клавиши Tab (при нажатии клавиши Tab в последней ячейке добавляется новая строка). Перемещение по ячейкам в обратном порядке производится по нажатию комбинации клавиш Shift и Tab.
Скопируйте текст, установите в ячейке точку ввода, затем выберите команду «Редактирование» > «Вставить».
Поместите точку ввода в то место, куда нужно добавить текст, выберите команду «Файл» > «Поместить», а затем дважды нажмите текстовый файл.
Добавление графики в таблицу
Чтобы добавить графический объект в таблицу, которая находится в отдельном документе InCopy, переключитесь в режим «Макет». Добавлять графические объекты в таблицу, которая находится в связанном документе InDesign, рекомендуется в приложении InDesign, поскольку там предусмотрены дополнительные возможности изменения размеров текстового фрейма.
Поместите точку ввода в то место, куда необходимо добавить графический объект, выберите команду «Файл» > «Поместить», затем дважды нажмите графический файл.
Поместите точку ввода в то место, куда необходимо добавить графический объект, выберите команду «Объект» > «Привязанный объект» > «Вставить», затем задайте параметры вставки. Позднее в привязанный объект можно добавить графику.
Скопируйте графический объект или фрейм, расположите точку ввода в нужном месте, затем выберите команду «Редактирование» > «Вставить».
При добавлении графического объекта в меньшую по размеру ячейку высота ячейки будет увеличена, а ширина ячейки останется прежней, то есть часть объекта может оказаться за правой границей ячейки. Если строка, в которую помещается графический объект, имеет фиксированную высоту, а высота объекта превышает высоту строки, это приведет к вытеснению содержимого ячейки.
Чтобы избежать этого, возможно, потребуется поместить изображение за пределы таблицы, изменить его размеры, а затем вставить обратно в ячейку таблицы.
Добавление верхних и нижних колонтитулов
При создании длинная таблица может распространяться на несколько столбцов, фреймов или страниц. Чтобы в верхней и нижней части каждого отдельного фрагмента таблицы повторялась определенная информация, можно использовать верхние и нижние колонтитулы.
Верхние и нижние колонтитулы можно добавить при создании таблицы. Кроме того, добавить верхние и нижние колонтитулы и настроить их отображение в таблице можно в диалоговом окне «Параметры таблицы». В верхние и нижние колонтитулы можно преобразовать и основные строки таблицы.
PDF Таблица редактор и генератор
Вы можете редактировать свои данные онлайн, например, Excel через Редактор таблицы, а изменения будут преобразованы в PDF Таблица в режиме реального времени.
2. Скопируйте сгенерированный PDF Таблица
Конвертер PDF по умолчанию сделает красивый стол, давайте скачаем его и посмотреть.
Примечание. Ваши данные безопасны, конверты полностью выполняются в вашем веб-браузере, и мы не будем хранить какие-либо ваши данные.
Что такое PDF?
PDF Стенды для портативного формата документа. PDF — это формат кроссплатформенного файла, разработанный Adobe, и это открытый формат файла, используемый для обмена электронными документами.
таблица и pdf?
Есть ли жизнь на Марсе?
Вы можете написать свой вопрос так, чтобы он был понятен.
А вообще, по-фигу, даже отвечать не хочется.
sadfeel
Участник
- 20.06.2008
- #3
Ответ: таблица и pdf?
Есть много чертежей, сохраненных в pdf. Необходимо добавить на каждый чертеж основную надпись. Хотелось бы как то это все автоматизировать. Использовал прогу VeryPDF PDF Stamper, которая может добавлять штампы в документ. Но она позволяет использовать только картинки. Понимаю, что можно использовать какой-нибудь тяжеловесный редактор, но, во-первых дорого, во-вторых не практично. Удобно редактировать проштампованный pdf в Nitro PDF Professional, но он не печатает текст на русском (вместо букв кракозябры).
qsedftghk
- 20.06.2008
- #4
Ответ: таблица и pdf?
Чем не устраивает сам акробат? Основная надпись это что? Рамочка с текстом или просто текст? Preview одного пдф с чертежом можно сюда выложить?
erazer
Участник
- 20.06.2008
- #5
Ответ: таблица и pdf?
в вашем случае можно воспользоваться плагином QuiteImposing он умеет "подкладывать" пдфку под готовый лист (в вашем случае основную надпись) подробнее здесь http://rudtp.ru/articles.php?id=85
qsedftghk
- 20.06.2008
- #6
Ответ: таблица и pdf?
sadfeel
Участник
- 20.06.2008
- #7
Ответ: таблица и pdf?
Посмотрю, что можно сделать с помощью QuiteImposing. Спасибо.
Превью выложить возможности нет. Основная надпись — это табличка с текстом. Если бы текст в осн. надписи на всех чертежах был одинаковым, проблемы бы не было. Моя идея состояла в том, что бы на каждый чертеж добавить саму таблицу в виде картинки с помощью PDF Stamper, а сам текст добавлять и, при необходимости, редактировать чертеж с помощью Nitro PDF Professional. Но прога не понимает русский шрифт, поэтому и стал искать другие варианты.
Evgen
Registered User
- 20.06.2008
- #8
Ответ: таблица и pdf?
Вас не устраивают штатные средства Акробата Add Watermark & Background?
sadfeel
Участник
- 20.06.2008
- #9
Ответ: таблица и pdf?
Evgen
У нашей конторы есть только 5-я версия. Что то я в ней вообще не нашел ни вотермарков, ни штампов.
Evgen
Registered User
- 20.06.2008
- #10
Ответ: таблица и pdf?
Гм. понял.
Я уж и не помню, что было/чего не было в пятой версии.
Раз нет, пробуйте QuiteImposing.
lunatik
Забанен
- 21.06.2008
- #11
Ответ: таблица и pdf?
Не по теме:
Почему бы не вставить пдфку в любую верстально-дизайнерскую прогу и там добавлять эту надпись? Или проблема в лиц софте? Но Quite тоже не бесплатен.
BuMeR
Участник
- 21.06.2008
- #12
Ответ: таблица и pdf?
Вы имеете в виду конвертировать таблицу Excel в PDF? на прошлой неделе я тоже мучился с данным вопросом. Но один мой хороший друг посоветовал попробовать через "Универсальный Конвертер Документов"
. [удалено].
=========
нет, очевидно, автор не это имел в виду. Прямая реклама (совершенно тупая, к тому же) и ссылки на сайт удалены согласно правилам форума. Гуглинг по названию чудо-продукта поможет, кому надо (я лишь надеюсь, что набрать в google "free pdf printer", в соседнем окне, поможет этому "кому-то" не меньше, если не больше)
Участник
- 21.06.2008
- #13
Ответ: таблица и pdf?
Не по теме:
да потому что автор не имеет (и не хочет, надеюсь) никакого отношения к верстке, допечатке и проч. Поэтому, и к qsedftghk относится, с его "по-фигу", будьте терпимее
Наиболее правильный путь, разумеется, апгрейд до, хотя бы, 7й версии акробата, где задача, как указано выше, решается элементарно
Хотя, по причине скуки и отсутствия интересных тем, рассмотрим, действительно, вариант: а как быть, если нет ничего кроме пятого? Ну, добавить watermark (или stamp) в pdf — этих решений, извините, как грязи (google!). Предположим еще, что мы не хотим тратить денег (не бедные, а жадные (хотя и честные, воровать не будем)). Тогда, хотя из условия задачи этого не следует, предположим еще, что чертежи автора одного размера, или его 1500 чертежей (хм-м, а иначе какой смысл в автоматизации?) можно разбить на небольшое количество групп по типоразмерам, и для каждого из них штамп надо добавлять в одно и то же место на чертеже (i don’t stretch too far, do i?). Тогда задача решается просто. Готовим любым способом pdf-ку со "штампом", того же размера (это важно), что и обрабатываемая группа чертежей. Накладываем "штамп" при помощи http://www.pdfhacks.com/pdftk/ (там же и бесплатный гуи к нему (если кому надо), думаю, разберетсь).
А как добавлять уникальный, по условию автора, текст в каждый чертеж, спросите вы? Очень просто. Пятый акробат (нормальный американский, никакой не СЕ) позволяет писать кириллицей в text annonation или text form field кириллическим шрифтом type1. Только, во избежание, по окончании правки чертежей и/или при отдаче на сторону, выполните в java script консоли команду "this.flattenPages();", с тем чтобы указанные объекты превратились в нормальный графический контент страницы
Более того, можно создать "штамп" с уже готовым text form field (со словом "образец", например), и не накладывать "штамп" на чертежи, а подкладывать их под "штамп" в качестве бэкграунда. Будет проще править, потом. А если еще заполнять form field’ы требуемой информацией при помощи того же pdftk. информацию вынимаем программно из базы данных (по кр.мере специально подготовленного файла, для всех наших чертежей). flatten тоже программно тем же pdftk. ну не знаю, тогда the sky is limit для автоматизации. К тому же, free
Не по теме:
а вообще странно, никто не вспомнил про Питстоп! Это же особенность национального препресса! на любую задачу — "возьмите питстоп. ". Хотя, смотрю, автор зарядился коммерческим софтом по самое не балуй (и продолжает: QI, и т.д.)