Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Использование внешнего фаила и вывод в печать


Автор: Scope 9.7.2008, 12:30
Доброго времени суток.
В программировании приложений я мягко сказать- не силён, так что взываю к Вашей помощи.
Встала передо мною задача- написать "простенькую программку", которая бы включала в себя 10 полей ввода и три кнопки: "Print", "Create PDF file" и "Exit". Программа по сути должна делать следующее: в корневом каталоге искать фаил, к примеру "Licence.txt", добавлять к данным этого фаила данные из полей ввода и при нажатии соответствующей кнопки выводить всё это дело в печать соответственно на принтер либо создавать PDF фаил.
З.Ы.: целесообразно ли использовать для создания PDF фаила библиотеку PDF Creator Pilot?
Знающие и сведущие мира сего- помогите начинающему в его начинаниях, хотя бы даже ссылками на похожие примеры.
Заранее благодарен smile 

Автор: MarkedOne 9.7.2008, 13:50
Вот код, который печатает содержимое компонента Memo.
Думаю его можно переделать под ваши нужды:
Код

procedure TForm1.Print(Memo: TMemo);
// Печать содержимого редактора c помощью свойства Printer.Canvas
var
  Y,dY,X,k: Integer;
  S: String;
begin
  if Memo.Lines.Count=0 then Exit;
  Screen.Cursor := crHourGlass;
  with Printer do
  begin
    BeginDoc;
    with Canvas do
    begin
      Font := Memo.Font;
      dY := TextHeight('1');    //    Определяем высоту строки
      Y := 3*dY;                   // Отступ от верхнего края листа
      X := PageWidth div 15;       // Отступ от левого края
      for k := 0 to Memo.Lines.Count-1    do
      begin
        // Выводим очередную строку
        TextOut(X,Y,Memo.Lines[k]);
        // Смещаемся на следующую    строку листа
        inc(Y,dY);
        if PageHeight-Y<2*dY then         // Нижний край листа?
        begin                             // Да
          NewPage;                        // Переход на новый лист
          // Выводим номер    страницы посередине листа:
          S := '- '+IntToStr(PageNumber)+'    -';
          TextOut((PageWidth-TextWidth(S))    div 2, dy, S);
          // и отчеркиваем    его от текста:
          MoveTo(X, 3*dy div    2);
          LineTo(PageWidth-X,    9*dy div 4);
          // Ордината    первой строки:
          Y := 3*dY
        end;  // if PageHeight-Y<2*dY
      end;  // for k := 0 to Memo1.Lines.Count-1    do
    end;  // with Canvas do
    EndDoc;
  end;  // with Printer do
  Screen.Cursor := crDefault;
end;

Автор: zhefran 9.7.2008, 17:08
На счет Pdf: попробуй просто печатать через pdf принтер.

Автор: Scope 9.7.2008, 19:23
Marked one, большое спасибо! Будем ковырять..
Zhefran, такой вариант рассматривался, но не факт что на исполняющей машине будет установлен пдф принтер.

Автор: Scope 10.7.2008, 13:58
Господа, прошу высказать ваши предложения- нужен PDF принтер, интегрируемый в приложение.

Автор: zhefran 11.7.2008, 14:44
В таком случае используй компоненты для создания pdf файлов, почти все они платные.
Попробуй разобраться с powerpdf.

Автор: zhefran 11.7.2008, 15:13
вторая часть

Автор: zhefran 11.7.2008, 15:15
третья

Автор: zhefran 11.7.2008, 15:16
Файл контрольной суммы. Собирать Тоталом

З.Ы.Администраторы, если можете, то обьедините эти мои сообщения. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)