max-width
CSS屬性沒有在pdfHTML
尚未支持。您可以嘗試使用您自己的自定義CSS應用程序來解決該問題,並在滿足某些條件時將寬度重置爲任何所需的值。
首先,創建CSS施放的圖像:
final ICssApplier customImageCssApplier = new BlockCssApplier() {
@Override
public void apply(ProcessorContext context, IStylesContainer stylesContainer, ITagWorker tagWorker) {
super.apply(context, stylesContainer, tagWorker);
if (tagWorker.getElementResult() instanceof Image) {
Image img = (Image) tagWorker.getElementResult();
if (img.getImageWidth() > 500) {
img.setWidth(UnitValue.createPercentValue(100));
}
}
}
};
然後,確保該施放器在出廠檢索。要做到這一點,你將不得不覆蓋getCustomCssApplier
:
ICssApplierFactory cssApplierFactory = new DefaultCssApplierFactory() {
@Override
public ICssApplier getCustomCssApplier(IElementNode tag) {
if (TagConstants.IMG.equals(tag.name())) {
return customImageCssApplier;
}
return super.getCustomCssApplier(tag);
}
};
最後,創建ConverterProperties
並確保將它傳遞給HtmlConverter.convertToPdf
:
ConverterProperties properties = new ConverterProperties().setCssApplierFactory(cssApplierFactory);
'第n-child'將在下一版本中支持'pdfHTML'。它在當前的開發快照版本中已經得到支持。 –
@AlexeySubach:很酷。任何關於圖像寬度的想法?這是現在的殺手。如果我可以將圖片放在頁面上,我認爲我們應該能夠使用itext繼續前進。 – Chuck