как создать PDF файл - PullRequest
       1

как создать PDF файл

0 голосов
/ 18 апреля 2020

Я использовал библиотеку itextsharp.

Я использовал следующий код для создания PDF-файла и распечатал его, но возникает следующая ошибка, какой код отсутствует?.

Код серьезности Описание Проект Ошибка состояния подавления строки файла Не удается разрешить ссылку: System.Drawing, на которую ссылается itextsharp. Добавьте пакет NuGet или ссылку на сборку для System.Drawing или удалите ссылку на itextsharp. print_pdf

полный код

using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using System.IO;
using Android.Content;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace print_pdf
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
var directory = new Java.IO.File(Android.OS.Environment.ExternalStorageDirectory, "pdf").ToString();
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}

        var path = Path.Combine(directory, "myTestFile.pdf");

        if (File.Exists(path))
        {
            File.Delete(path);
        }

        var fs = new FileStream(path, FileMode.Create);
        Document document = new Document(PageSize.A4, 25, 25, 30, 30);
        PdfWriter writer = PdfWriter.GetInstance(document, fs);
        document.Open();
        document.Add(new Paragraph("Hello World"));
        document.Close();
        writer.Close();
        fs.Close();

        Java.IO.File file = new Java.IO.File(path);
        Intent intent = new Intent(Intent.ActionView);
        intent.SetDataAndType(Android.Net.Uri.FromFile(file), "application/pdf");
        StartActivity(intent);
    }

    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
    {
        Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

        base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}
}

1 Ответ

0 голосов
/ 20 апреля 2020

Попробуйте добавить добавление System.Drawing.dll в качестве ссылки

Щелкните правой кнопкой мыши References -> Add Referencesc -> Assembly -> Browse... -> C:\Windows\Microsoft.NET\Framework\v4.0.30319 - -> выберите System.Drawing.dll.

...