我使用以下代码从特定位置获取PDF数据。我想在该位置显示粗体文本。
Rectangle rect = new Rectangle(0,0,250,250);
RenderFilter filter = new RegiontextRenderFilter(rect);
fontBasedTextExtractionStrategy strategy = new fontBasedTextExtractionStrategy();
strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter); //Throws Error.
首先,创建一个称为fontBasedTextExtractionStrategy的新方法来代替简单的TextExtractionStrategy帮助文本吗?像下面这样
public class fontBasedTextExtractionStrategy implements TextExtractionStrategy {
private String text;
@Override
public void beginTextBlock() {
}
@Override
public void renderText(TextRenderInfo renderInfo) {
text = renderInfo.getText();
System.out.println(renderInfo.getFont().getFontType());
System.out.print(text);
}
@Override
public void endTextBlock() {
}
@Override
public void renderImage(ImageRenderInfo renderInfo) {
}
@Override
public String getResultantText() {
return text;
}
}
但是又如何正确地称呼它呢?
请看一个ParseCustom
例子。在此示例中,我们创建了一个自定义RenderFilter
(不是TextExtractionStrategy
):
class FontRenderFilter extends RenderFilter {
public boolean allowText(TextRenderInfo renderInfo) {
String font = renderInfo.getFont().getPostscriptFontName();
return font.endsWith("Bold") || font.endsWith("Oblique");
}
}
该文本将过滤所有文本,以便仅Postscript字体名称以粗体或斜体结尾的文本。
这是您使用此过滤器的方式:
public void parse(String filename) throws IOException {
PdfReader reader = new PdfReader(filename);
Rectangle rect = new Rectangle(36, 750, 559, 806);
RenderFilter regionFilter = new RegionTextRenderFilter(rect);
FontRenderFilter fontFilter = new FontRenderFilter();
TextExtractionStrategy strategy = new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), regionFilter, fontFilter);
System.out.println(PdfTextExtractor.getTextFromPage(reader, 1, strategy));
reader.close();
}
如您所见,我们创建了一个FilteredTextRenderListener
包含两个过滤器的,一个RegionTextRenderFilter
和我们基于字体的自制过滤器。
我设置我的类,以便使用Laravel授权和策略功能。但是,在为我的方法定义中间件时,我一直遇到这个错误(类App\Policies\StatusPolicy不存在)。这就是我所拥有的: AuthServiceProvider。php ontroller.php 状态策略。php(由php artisan生成):策略状态策略--model=Status
我正在尝试将基于时间的触发策略与log4j-2.13一起使用。2,它与spring boot 2.3一起嵌入。0.0释放(spring-boot-started-log4j2)。预期的功能是每天创建一个日志文件。 我的配置文件如下所示: 但是,在启动应用程序时,会引发以下异常: 如果我改变文件模式: 不再引发异常,但文件名为“log-%d{yyyyMMdd}.log”,而不是“log-202005
我有一个spring boot项目,它使用以下设置运行: 我发现hibernate在映射atributes时没有将camelCase转换为SNAKE_CASE,而是将upper_case应用于它(因为Oracle不区分大小写,所以这并不重要): 这是我的实体: 编辑 我发现我的项目使用的是spring Boot1.4.5.发行版,但由于其他无可争议的原因,Hibernate的版本是4.2.19.f
自动化平台 默认 fullReset noReset iOS (包括XCUITest) 测试完成后关闭模拟器。不销毁模拟器。不从真机上卸载应用。 测试完成后卸载应用, 模拟器测试结束后销毁模拟器。 测试结束后不销毁或者关闭模拟器。启动测试运行在任意正在运行的模拟器或者插入的真机。 Android 测试结束后停止应用,清理应用数据,不卸载应用包。 测试结束后停止应用,清理应用数据,卸载应用包。 不停
本地策略可以配置一些用户相关的权限,比如连接超时设置。V2Ray 处理的每一个连接,都对应到一个用户,按照这个用户的等级(level)应用不同的策略。本地策略可按照等级的不同而变化。 PolicyObject PolicyObject对应配置文件中的policy项。 { "levels": { "0": { "handshake": 4, "connIdle":
问题内容: 我正在尝试对PassportJS使用多种本地策略。我不尝试使用本地,facebook和gmail等。我将两组用户存储在单独的对象中,并且我想使用本地策略对两者进行身份验证。就目前而言,我不能对两者使用相同的本地策略,因为它们具有不同的对象属性,这使我查询不同的对象。有什么办法吗?或对此的任何建议将不胜感激。 问题答案: 我认为这是不可能的,因为据我所知,您需要一种在第一个策略失败时将请