Générer un PDF avec Unity

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Xameal
Messages : 13
Inscription : 15 Mars 2020 23:56

Générer un PDF avec Unity

Message par Xameal » 23 Mai 2022 14:51

Bonjour !
Je cherche à vouloir créer un fichier pdf, avec des données de mon application Unity. Désolé pour les explications, un peu longue, mais j'essaie de donner le plus de détail pour vous "faciliter" la tâche.

Avant les explications que je donne, je tiens à préciser que toute solutions pour générer un PDF, avec, écrit dedans des valeurs du jeux, même une solution différente de ce que je suis entrain de faire, me convient.

Pour commencer, j'arrive déjà à créer un fichier .csv (Excel) avec Unity, et le System I/O de C#.
Cependant, j'ai cru comprendre que pour créer un fichier PDF, il fallait obligatoirement ajouter un framework dans notre projet.
Le 1er framework qui est venu est : iText7.

J'ai donc ajouter le plugin à l'aide du gestionnaire de package NuGet.
J'ai ensuite vu qu'il fallait ajouter les fichier .dll, dans notre projet Unity. Je l'ai fait aussi.
Seulement voila, à chaque fois que j'ajoute un fichier dll, Unity m'en demande un autre (voir image) :
Image

J'ai ajouté comme il me le demandé, les fichiers dll voulu 5 fois, mais j'ai l'impression que ca ne s'arrête jamais.

Enfin, voila mon code :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using iText.Layout;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
 
public class PDF_Generator : MonoBehaviour
{
    string filename = "";
 
    [System.Serializable]
    public class Player
    {
        public string name;
        public int health;
        public int damage;
        public int defence;
    }
 
    [System.Serializable]
 
    public class PlayerList
    {
        public Player[] player;
    }
 
    public PlayerList myPlayerList = new PlayerList();
    // Start is called before the first frame update
    void Start()
    {
        filename = Application.dataPath + "/test.pdf";
    }
 
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            EnglishPDF();
        }
    }
 
    public void EnglishPDF()
    {
 
        string dest = Application.dataPath + "/test.pdf";
        PdfWriter writer = new PdfWriter(dest);
        // Creating a PdfDocument
        PdfDocument pdfDoc = new PdfDocument(writer);
 
        // Adding an empty page
        pdfDoc.AddNewPage();
 
        // Creating a Document
        Document document = new Document(pdfDoc);
        // Closing the document
        document.Close();
    }
}
 
Comme vous pouvez le voir sur cette image, il n'ya que la fonction Close() qui ne fonctionne pas.

Image

Le message d'erreur est le suivant :
<Le type "AbstractIdentifableElement" est défini dans un assemby qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'itext.commons', Version 7.2.2.0, Culture = neutral, PublicKeyToken = (un long chiffre)>

Je travaille avec Unity 2019.4.36f1, et Visual Studio 2019. Je vous remercie d'avance pour vos réponses.
Sincèrement.

Répondre

Revenir vers « Scripting »