java - 如何用 firemonkey 更改字体 JPaint?
问题描述
我需要使用firemonkey
with打印 PDF 文件JPdfDocument
;
我已经在其工作下方编写了代码,但不要更改字体: 这是文档链接
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;
解决方案
Paint.setARGB($FF, 0, 0, 0); // color
paint.setFakeBoldText(true);// font bol
Paint.setTextSize(16); // font size
Paint.setFontFeatureSettings(StringToJString('Segoe Script')); //font name
推荐阅读
- javascript - Puppeteer 删除 DOM 元素和子元素并释放内存
- google-workspace - 如何在 StackDriver 中查看 GoogleDrive 的更改
- excel - 如何根据另一列中的所有单元格超过 0 来获得一列的总数
- javascript - 一次将多行中的html表行数据发布到django模型
- php - 如何在php中过滤字符串
- mongodb - 使用 mongo 命令创建 MongoDB 数据库
- hibernate - 从 JPA2.0 迁移到 JPA 2.1 时出现“不支持使用 GenericConnection”异常
- javascript - Vue:仅在创建组件时才导入 SCSS
- reactjs - 在 react 中使用 webpack 查看 img 标签内的图像正在返回一个 object%20 模块
- c - fscanf 从输入中读取不匹配的格式