我目前正在解决样式问题。我正在使用IronPDF创建PDF并从HTML生成新的PDF。
我有一个实例,其中我的字体被覆盖。样式如下:
#[async_trait(?Send)]
pub trait ParseResponse {
/// Extracts a response body of type T from `input`
/// Example:
///
/// let result: MyContractType = resp.parse().await.unwrap();
async fn parse<T: DeserializeOwned>(&mut self) -> Result<T, Box<dyn std::error::Error>>;
}
#[async_trait(?Send)]
impl ParseResponse for ServiceResponse<Body> {
async fn parse<T>(&mut self) -> Result<T, Box<dyn std::error::Error>>
where
T: DeserializeOwned,
{
let bytes = self.take_body().try_fold(Vec::new(), |mut acc, chunk| async {
acc.extend(chunk);
Ok(acc)
});
Ok(serde_json::from_slice(&bytes.await?)?)
}
}
当生成HTML并将其吐出到PDF中时,PDF将字体显示为ArialBold。与原始字体相比,这会导致字体看起来更小且缩小。我正在尝试通过扩大字体大小来进行过度补偿,但是字体家族的变化让我很头疼。如果删除font-weight,它将变为ArialRegular,也不正确。我只想要普通的Arial字体。
答案 0 :(得分:1)
我在IronSoftware担任支持工程师。
尝试通过从文件夹导入本地字体来使用本地字体,而不要使用系统上安装的系统字体。尽管效果更好,但这并不是完美的。
下面的代码示例引用Arial:
<style type="text/css">
@font-face {
font-family: 'Arial';
src: url('./Arial.eot');
src: local('Arial'), url('./Arial.woff') format('woff'), url('./Arial.ttf') format('truetype');
}
.fontsforweb_fontid_1080 {
font-family: 'Arial' !important;
}
</style>
我们将构建一个新的渲染引擎以解决该问题,该引擎将在2021年上半年发布。