I have Docker Image, and have HTML, I am trying to convert this type of HTML to PDF but Japanese, Chinese and Korean character are reflecting as box, attached the output file. Please suggest why characters are not appearing
Function -
void generatePDF2()
{
string text = @"<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div style="border-spacing: 0; border-width: 0; padding: 0;"> <h3>英語⽇本語</h3> <span>英語⽇本語</span> </div><br/> <div> <table style="border-spacing: 0; border-width: 0; padding: 0;" aria-describedby="ack-template-desc"> <th id="acknowledgement-fragment" /> <tr> <td>Agreed By:</td> </tr> <tr> <td>Name:</td> <td>transition1 transition2</td> </tr> <tr> <td>Date:</td> <td>01/30/2025</td> </tr> </table> </div> </body> </html>
";
using var memoryStream = new MemoryStream();
using var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(text));
var options = new HtmlLoadOptions();
var document = new Document(htmlStream, options);
Console.WriteLine(JsonConvert.SerializeObject(document.FontUtilities.GetAllFonts()));
document.Save(memoryStream);
File.WriteAllBytes("output1.pdf", memoryStream.ToArray());
}
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div style="border-spacing: 0; border-width: 0; padding: 0;">
<h3>英語⽇本語</h3>
<span>英語⽇本語</span> </div><br/>
<div>
<table style="border-spacing: 0; border-width: 0; padding: 0;" aria-describedby="ack-template-desc">
<th id="acknowledgement-fragment" />
<tr>
<td>Agreed By:</td>
</tr>
<tr>
<td>Name:</td>
<td>transition1 transition2</td>
</tr>
<tr>
<td>Date:</td>
<td>01/30/2025</td>
</tr>
</table>
</div>
</body>
</html>
# Base SDK image (for running with `dotnet run`)
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS base
WORKDIR /app
# Install libgdiplus and dependencies
RUN apk add --no-cache libgdiplus msttcorefonts-installer font-noto-cjk fontforge libc6-compat fontconfig \
chromium \
chromium-chromedriver \
gcompat \
&& update-ms-fonts
#RUN mkdir -p /usr/share/fonts/noto-cjk && \
#wget -qO- https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip | busybox unzip -d /usr/share/fonts/noto - && \
#wget -qO- https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKkr-hinted.zip | busybox unzip -d /usr/share/fonts/noto - && \
#wget -qO- https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKsc-hinted.zip | busybox unzip -d /usr/share/fonts/noto - && \
#wget -qO- https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKtc-hinted.zip | busybox unzip -d /usr/share/fonts/noto - && \
#fc-cache -f
RUN wget -qO- https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip | busybox unzip -d /usr/share/fonts/truetype/msttcorefonts - && \
fc-cache -fv
#RUN for font in /usr/share/fonts/noto-cjk/*.otf; do \
#fontforge -lang=ff -c 'Open($1); Generate($2)' "$font" "${font%.otf}.ttf"; \
#done
# Copy the project file and restore dependencies
COPY ["DownloadWepPage.csproj", "."]
RUN dotnet restore "./DownloadWepPage.csproj"
# Copy the entire project and set working directory
COPY . .
WORKDIR "/app/."
# Expose necessary ports (if applicable)
EXPOSE 5000
# Run the application using `dotnet run`
CMD ["dotnet", "run", "--project", "DownloadWepPage.csproj"]
output1.pdf (109.8 KB)