【问题标题】:How change font JPaint with firemonkey?如何用 firemonkey 更改字体 JPaint?
【发布时间】:2018-12-10 15:09:25
【问题描述】:

我需要使用firemonkeyJPdfDocument 打印PDF 文件;

我已经在它的工作下面编写了代码,但不要更改字体: Here is the documentation link

procedure TForm1.btGerarPDFClick(Sender: TObject);
var
   Document: JPdfDocument;
   PageInfo: JPdfDocument_PageInfo;
   Page: JPdfDocument_Page;
   Canvas: JCanvas;
   Paint: JPaint;
   Recto: JRect;
   Rect: JRect;
   FileName: string;
   OutputStream: JFileOutputStream;
   Intent: JIntent;

   begin
       // create Pdf document
       Document := TJPdfDocument.JavaClass.init;
       try
            // create page  1
            PageInfo := TJPageInfo_Builder.JavaClass.init(100, 100, 1).create;
            Page := Document.startPage(PageInfo);

            Canvas := Page.getCanvas;
            Paint := TJPaint.JavaClass.init;

            Paint.setARGB($FF, 0, 0, $FF);

           // I need to change the font to: Courier New, Size 9

           Canvas.drawText(StringToJString('Courier New 9'), 10, 50, Paint);

          // I need to change the font to: Courier New, Size 14

          Canvas.drawText(StringToJString('Courier 14'), 10, 50, Paint);

         Document.finishPage(Page);

        // write PDF document to file
        FileName := TPath.Combine(TPath.GetSharedDocumentsPath, 'demo.pdf');
          OutputStream := TJFileOutputStream.JavaClass.init
         (StringToJString(FileName));
           try
             Document.writeTo(OutputStream);
           finally
             OutputStream.close;
        end;
   finally
      Document.close;
   end;

   // start PDF viewer
      Intent := TJIntent.JavaClass.init;
      Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
      Intent.setDataAndType(FileNameToUri(FileName),
      StringToJString('application/pdf'));
      Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY or
      TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP);
      SharedActivity.StartActivity(Intent);
   end;

【问题讨论】:

    标签: java android firemonkey


    【解决方案1】:
    Paint.setARGB($FF, 0, 0, 0); // color
    paint.setFakeBoldText(true);// font bol
    Paint.setTextSize(16); // font size
    Paint.setFontFeatureSettings(StringToJString('Segoe Script')); //font name
    

    【讨论】:

    • 您好,欢迎来到本网站。虽然此代码 sn-p 可能是解决方案,但including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2015-03-19
    • 2013-10-02
    • 2015-10-11
    • 2017-09-02
    相关资源
    最近更新 更多