0

次のコードのように、その中のフォント フォルダーにアクセスするには、リソース ディレクトリへのパスが必要です。

PdfFont russian = PdfFontFactory.createFont(
    "src/main/resources/fonts/FreeSans.ttf", "CP1251", true);

しかし、Xamarin.android では。私は次のことを試しました:

string uri = "android.resource://" + this.PackageName + "/font/ARIAL.TTF";
PdfFont russian = PdfFontFactory.CreateFont(
     uri, "CP1251", true);

しかし、うまくいきません。私もこのコードを試しました:

  var path2 = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
            filePath = System.IO.Path.Combine(path2.ToString(), "myfile4.pdf");
            stream = new FileStream(filePath, FileMode.Create);
            PdfWriter writer = new PdfWriter(stream);
            PdfDocument pdf2 = new iText.Kernel.Pdf.PdfDocument(writer);
            Document document2 = new Document(pdf2, PageSize.A4);
            AssetManager assets = this.Assets;
            string content;
            Stream stream2 = assets.Open("ARIAL.TTF");
            var memorystrm = new MemoryStream();
            stream2.CopyTo(memorystrm);
            byte[] t = memorystrm.ToArray();
            Toast.MakeText(this, t.Length.ToString(), ToastLength.Long);
            if (t != null)
            {
                PdfFont russian = PdfFontFactory.CreateFont(t, "UTF-8", true);
                document2.SetFont(russian);
                Paragraph p = new Paragraph("Hello World! ")
                    .Add(new Text("صباح! ").SetFontSize(14)).Add(new Text("Bonjour le monde! ").SetFontSize(10));
                document2.Add(p);
                document2.Close();
                Toast.MakeText(this, "done", ToastLength.Long);
            }
            else
            {
                Toast.MakeText(this, "error", ToastLength.Long);
            }

コードは実行されませんでした

4

1 に答える 1