лучший способ печати данных в столбчатом формате? - PullRequest
0 голосов
/ 13 декабря 2008

Я использую Python для чтения данных в недружественном для пользователя формате и преобразования их в более удобный для чтения формат. Записи, которые я выводю, обычно представляют собой только фамилию, имя и код комнаты. I

Я бы хотел бы , чтобы вывести серию страниц, каждая из которых содержит непрерывное подмножество общих записей, разделенных на несколько столбцов, каждый из которых содержит непрерывное подмножество общих записей на странице. (Другими словами, вы должны прочитать первый столбец, перейти к следующему столбцу, перейти к следующему столбцу и т. Д., А затем начать все сначала на следующей странице ...)

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что для выходных форматов я почти наверняка ограничен HTML (и Javascript, CSS и т. Д.). Как лучше всего получить данные в этом столбчатом формате? Если бы я знал наверняка, что область печати будет содержать, например, 20 записей по вертикали и пять по горизонтали, я мог бы легко напечатать таблицы 5x20, но я не знаю, есть ли способ указать разрыв страницы - и Я не знаю, есть ли способ программно рассчитать, сколько записей поместится на странице.

Как бы вы подошли к этому?

РЕДАКТИРОВАТЬ: Причина, по которой я сказал, что я был ограничен в выводе: я должен создать файл на одном компьютере, а затем перенести его на другой компьютер, на котором мы не можем установить новое программное обеспечение и на котором Выбор существующего программного обеспечения не является оптимальным. Сам файл будет использоваться только для физической распечатки (с чем на самом деле будут работать конечные пользователи), но мое время на компьютере, с которого я могу печатать, будет ограниченным, поэтому мне нужно иметь файл готов к работе и распечатывается сразу же без особых настроек.

Прямо сейчас мне удалось найти текстовый процессор, который я мог бы использовать на целевой машине, поэтому я собираюсь выяснить, могу ли я ориентироваться на формат, который использует текстовый процессор.

РЕДАКТИРОВАТЬ: Как только я узнал, что есть текстовый процессор, который я мог бы использовать, я сделал простой файл скелета с нужными настройками (настройки столбцов и вкладок, моноширинный шрифт небольшого размера и т. Д.) .) и затем измерил, сколько символов я получил на строку столбца и сколько строк я получил на столбец. Я наблюдал за сериями довольно внимательно, чтобы убедиться, что не было каких-то странных строк, которые каким-то образом выходили за рамки ориентирования символов на строку (конечно, этого не должно происходить с моноширинным шрифтом, но сколько раз вы в конечном итоге нужно выяснить, почему то, что «не должно происходить» происходит в любом случае?)

Если бы на целевой машине не было текстового процессора, который я мог бы использовать, я бы, вероятно, посмотрел на PDF как на выходной формат.

1 Ответ

3 голосов
/ 15 декабря 2008

«Если бы я знал наверняка, что область печати бумаги будет содержать 20 записей по вертикали и пять по горизонтали»

Вы это знаете.

Вы знаете размер вашей бумаги. Вы знаете размер вашего шрифта. Вы можете легко сделать математику.

«почти наверняка ограничено HTML ...» не имеет особого смысла. Это веб-приложение? На странице могут быть кнопки «Назад» и «Далее» для перехода по страницам? Выберите подходящий вам размер и отобразите одну страницу с кнопками «Назад» и «Далее».

Если это должна быть одна HTML-страница, которая печатается правильно, это сложно. Есть некоторые вещи CSS, которые вы можете сделать, но вы будете счастливее, создав PDF-файл.

Получите PyX или ReportLab и создайте PDF-файл, который печатается правильно.

У меня - лично - нет терпения ко всему этому. Я пытаюсь поместить такие вещи в файл CSV. Мои пользователи могут затем открыть CSV с помощью электронной таблицы инструментов (у Open Office Org есть хорошая), а затем настроить столбцы и распечатать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...