Мой код использует библиотеку «Агент пользователя летающей тарелки» для генерации PDF / PPT-файлов из HTML-шаблонов.
Теперь проблема в том, что Itext использует кеш-систему для доступа к изображениям и другим ресурсам через кеш вместовызов внешнего URL.Я хочу знать, как очистить этот кеш, или сколько нужно, чтобы обновить.Я понятия не имею, что я отчаянный и невежественный здесь, так как я даже не могу понять этот инструмент из-за отсутствия хорошей документации.
1- Можете ли вы объяснить, какова роль ReplacedElementFactory
.
2- И при исследовании библиотеки я нашел метод:
public ImageResource getImageResource(String uri) {
ImageResource resource = null;
uri = this.resolveURI(uri);
resource = (ImageResource)this._imageCache.get(uri);
if (resource == null) {
InputStream is = this.resolveAndOpenStream(uri);
if (is != null) {
try {
URL url = new URL(uri);
if (url.getPath() != null && url.getPath().toLowerCase().endsWith(".pdf")) {
PdfReader reader = this._outputDevice.getReader(url);
PDFAsImage image = new PDFAsImage(url);
Rectangle rect = reader.getPageSizeWithRotation(1);
image.setInitialWidth(rect.getWidth() * this._outputDevice.getDotsPerPoint());
image.setInitialHeight(rect.getHeight() * this._outputDevice.getDotsPerPoint());
resource = new ImageResource(uri, image);
} else {
Image image = Image.getInstance(this.readStream(is));
this.scaleToOutputResolution(image);
resource = new ImageResource(uri, new ITextFSImage(image));
}
this._imageCache.put(uri, resource);
} catch (Exception var16) {
XRLog.exception("Can't read image file; unexpected problem for URI '" + uri + "'", var16);
} finally {
try {
is.close();
} catch (IOException var15) {
;
}
}
}
}
, который содержит эту строку кода resource = (ImageResource)this._imageCache.get(uri);
Я предполагаю, что именно здесьизображение из кэша вместо поиска более новой версии изображения.
3- Как часто Itext обновляет свой кэш, и каков его размер в первую очередь, и как мне указать путь к нему, какэто хранит это?
Спасибо за вашу помощь.