2008-12-13 5 views
0

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

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

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

Как вы подходите к этому?

EDIT: Причина, по которой я сказал, что я ограничен в выходе: мне нужно создать файл на одном компьютере, а затем привести его на другой компьютер, на котором мы не сможем установить новое программное обеспечение и на котором можно выбрать существующий программное обеспечение не является оптимальным. Сам файл будет использоваться только для создания физической распечатки (с которой на самом деле работают конечные пользователи), но мое время на компьютере, на котором я могу печатать, будет ограничено, поэтому мне нужно иметь файл готов к печати и распечатать сразу без большой настройки.

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

EDIT: После того, как я знал, что текстовый процессор я мог бы использовать, я сделал простой файл скелета с настройками, которые я хотел (столбец и вкладки настроек, моноширинный шрифт небольшого размера точки, и т.д.) и затем измерил, сколько символов я получил за строку столбца и сколько строк я получил за столбец. Я очень внимательно наблюдал за прогонами, чтобы убедиться, что не было каких-то странных строк, которые каким-то образом переполнили директивы символов на строку (что не должно происходить с моноширинным шрифтом, конечно, но сколько раз вы в конечном итоге чтобы выяснить, почему такая вещь, которая «не должна» произойти, происходит в любом случае?)

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

ответ

3

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

Вы знаете, что.

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

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

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

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

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

+0

+1 PDF-файл выглядит как путь – 2008-12-15 01:48:51