Генерация распечатки в Squeak - PullRequest
       13

Генерация распечатки в Squeak

1 голос
/ 02 августа 2009

Я хотел бы создать выходной файл для печати из Squeak, например, для создания отчета.

Я немного погуглил, и меня удивляет, как мало материала в примерах, касающихся создания печатаемых файлов. Однако я обнаружил пару классов классов с именем PostscriptCanvas и EPSCanvas и метод внутри него с именем morphAsPostscript.

Чтобы попробовать эти классы, я создал небольшой пример кода, и мой первый пример рабочей области был:

p := PasteUpMorph new.
p extent: 300@300.
p position: 20@20.
p borderColor: Color black.
p setProperty:  #cornerStyle toValue: #rounded.
p openInWorld.
(FileStream newFileNamed: 'test1.ps') nextPutAll: (PostscriptCanvas morphAsPostscript: p)

к сожалению, вышеприведенное не работает и останавливается с notnotUntatand # pageBBox.

когда я снова попробую пример, но на этот раз с использованием класса EPSCanvas:

p := PasteUpMorph new.
p extent: 300@300.
p position: 20@20.
p borderColor: Color black.
p setProperty:  #cornerStyle toValue: #rounded.
p openInWorld.
(FileStream newFileNamed: 'test2.eps') nextPutAll: (EPSCanvas morphAsPostscript: p).

на этот раз я генерирую вывод, но углы прямоугольника не округляются в файле eps (они округляются на экране).

Итак, мои вопросы:

  1. Я на правильном пути, чтобы генерировать вывод для печати, или я должен использовать альтернативную технику?
  2. Почему в первом примере происходит сбой при использовании notUnderstand #pageBBox?
  3. Почему второй пример почти работает, но не отображает закругленные углы?

Спасибо Kevin

1 Ответ

2 голосов
/ 02 августа 2009

Это не просто писк - создание печатного вывода ужасно сложно на любом языке программирования. Всякий раз, когда я занимался планированием проекта и люди упоминали отчеты, я сразу удваивал (по крайней мере) оценки проекта. Лично я бы порекомендовал записать данные в файл в каком-либо общеизвестном формате, таком как XML или CSV, а затем использовать пакет для создания отчетов для создания реальных отчетов.

Извините, что не помогу!

...