Очень интересное свойство FR при печати

alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
отредактировано 03:14 Раздел: FastReport 3.0
Ситуация в следующем: в отчете используется 2 бренда (MasterData - используется автоматичесвая разбивка на страницы и PageFooter). В окне предварительного просмотра отчета перед выводом на печать текст отчета входит точно на страницу, при распечатке данного отчета на принтере появляется свободное место на странице между двумя указанными брендами, причем чем меньше шрифт отчета тем больше данное расстояние. В чем здесь может быть проблема? Пробовал печатать на разных принтерах эффект остается тот же! В документации об этом ничего не нашел!

Комментарии

  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 03:14
    ;) Вообще разработчики FastReport присутствуют на данном форуме? ;)
  • отредактировано 03:14
    "Если вы не получили ответа, не принимайте это на свой счет, как наш отказ помочь лично вам. Иногда участники форума просто не знают ответ. Отсутствие ответа не равносильно игнорированию, хотя извне разницу заметить сложно."
    (с) http://webhelp.ru/
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 03:14
    написал:
    "Если вы не получили ответа, не принимайте это на свой счет, как наш отказ помочь лично вам. Иногда участники форума просто не знают ответ. Отсутствие ответа не равносильно игнорированию, хотя извне разницу заметить сложно."
    (с) http://webhelp.ru/
    Я ничего против Вас в целом не имел ввиду, но только хотелось бы получать иногда ответы, например, в топике "Как отформатировать строку по время постоения?", можно написать, что это не возможно или никак (нет таких функций) и т.п.
  • отредактировано 03:14
    Пришлите пример отчета (файлы .fr3 и .fp3) на tz@fast-report.com.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 03:14
    AlexTZ написал:
    Пришлите пример отчета (файлы .fr3 и .fp3) на tz@fast-report.com.
    У меня есть только файлы с расширением *.fr3!
  • отредактировано 03:14
    Сделай превью отчета и сохрани результат, будет fp3
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 03:14
    AlexTZ написал:
    Пришлите пример отчета (файлы .fr3 и .fp3) на tz@fast-report.com.
    Выслал файлы!
  • отредактировано 03:14
    Проблема в том, что объект Rich печатается виндой. На разных устройствах (экран и принтер) текст выглядит по-разному. В процесс печати я вмешаться не могу.
  • отредактировано 03:14
    И что же тогда делать в таком случае???
    Не использовать Рич??
    У меня например не только место остается между бендами, но еще текст обрезается при печати - на превью все нормально выглядит....как с этим бороться??
  • отредактировано 03:14
    Можно вернуть процедуру отрисовки, что была в версии 3.03. При этом, правда,
    будут косяки с межсимвольными расстояниями, но, увы, третьего не дано.

    frxRich.pas:
     TfrxRichView = class(TfrxStretcheable)
      private
        function CreateMetafile: TMetafile;
    
    
    function TfrxRichView.CreateMetafile: TMetafile;
    var
      Range: TFormatRange;
      LogX, LogY: Integer;
      EMFCanvas: TMetafileCanvas;
    begin
      FillChar(Range, SizeOf(TFormatRange), 0);
    
      with Range do
      begin
        LogX := 96;
        LogY := 96;
        rc := Rect(Round(GapX * 1440 / LogX), Round(GapY * 1440 / LogY),
          Round((Width - GapX) * 1440 / LogX),
          Round((Height - GapY) * 1440 / LogY));
        rcPage := rc;
    
        Result := TMetafile.Create;
        Result.Width := Round(Width);
        Result.Height := Round(Height);
    
        EMFCanvas := TMetafileCanvas.Create(Result, 0);
        hdc := EMFCanvas.Handle;
        hdcTarget := hdc;
        if Color = clTransparent then
          FRichEdit.Color := clWhite else
          FRichEdit.Color := Color;
    
        chrg.cpMin := 0;
        chrg.cpMax := -1;
        FRichEdit.Perform(EM_FORMATRANGE, 1, Integer(@Range));
      end;
    
      FRichEdit.Perform(EM_FORMATRANGE, 0, 0);
      EMFCanvas.Free;
    end;
    
    procedure TfrxRichView.Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX,
      OffsetY: Extended);
    var
      EMF: TMetafile;
    begin
      BeginDraw(Canvas, ScaleX, ScaleY, OffsetX, OffsetY);
      DrawBackground;
    
      EMF := CreateMetafile;
      Canvas.StretchDraw(Rect(FX, FY, FX1, FY1), EMF);
      EMF.Free;
    
      DrawFrame;
    end;
    
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.