我有一个严重的问题,
我希望在PDF创建后以RTL格式显示希伯来语单词,但它没有显示。它总是显示LTR。
我有一些英语和希伯来语的单词组合。
我在google上做了一些搜索,但没有运气。
我正在使用Laravel DomPdf.
我已检查过我的dompdf核心文件trainX = trainX.reshape(trainX.shape[0], trainX.shape[1],1)
trainY = trainY.reshape(trainY.shape[0],)
testX = testX.reshape(testX.shape[0], testX.shape[1], 1)
model = Sequential()
model.add(LSTM(100, return_sequences= True, input_shape=(trainX.shape[1],1) ))
model.add(LSTM(100, return_sequences= False))
model.add(Dense(1, activation='linear'))
model.compile(loss='mse', optimizer='adam')
model.fit(trainX, trainY, epochs=500, shuffle=False, verbose=1)
model.save('model_lstm.h5')
model = load_model('model_lstm.h5')
prediction = model.predict(testX, verbose=0)
,其值DOMPDF_UNICODE_ENABLED
仍无法获得解决方案。
这是我的刀片文件
"DOMPDF_UNICODE_ENABLED" => true,
如果有人帮我摆脱这一点,那就太棒了。
答案 0 :(得分:0)
Dompdf(最高为0.8.1)目前不支持RTL文本(see issue 1009)。有work around,但结果最多可以通过。
如果您有兴趣尝试一下,请修改通过在line 83添加以下代码呈现的文字:
if (strtolower($style->direction) === 'rtl') {
preg_match_all('/./us', $text, $ar);
$text = join('',array_reverse($ar[0]));
// if there are numbers in the string so the next line reverse the number back treat also numbers with dot (decimal) and email
$text = preg_replace_callback('/\d+-\d+|\d+|\d+\.\d+|\S+@\S+/', function (array $m) { return strrev($m[0]); }, $text);
}
答案 1 :(得分:0)
您可以使用支持rtl语言(例如波斯语和阿拉伯语)的软件包
https://github.com/barryvdh/laravel-snappy
为了更改方向,只需在将要转换为pdf的html标签中,使用dir =“ rtl”