Table des matières

JSON.NET de NewtonSoft

Sérialiser un objet anonyme

string data = JsonConvert.SerializeObject(new
{          
  value1 = "value",
  value2 = "value"
});

Désérialiser

string jsonData = File.ReadAllText(fullName);
RecoveryPasswordData recoveryData = JsonConvert.DeserializeObject<RecoveryPasswordData>(jsonData);

Lire les CSV en C#

Le plus simple pour lire les CSV c'est d'utiliser un package Nuget FileHelpers.

DotNetZip

DotNetZip est remplacé par System.IO.Compression.

Décompresser un fichier XML en mémoire

string xlsxFile = @"N:\FichierExcelImportant.xlsx";

ZipFile zipFile = ZipFile.Read(xlsxFile);
ZipEntry zipEntry = zipFile["xl/workbook.xml"];

List<string> xmlContents = new List<string>();
using (var ms = new MemoryStream())
{
	zipEntry.Extract(ms);

	ms.Position = 0;
	var sr = new StreamReader(ms);
	var myStr = sr.ReadToEnd();
	xmlContents.Add(myStr);
}

xmlContents.Select(x => x).First().Dump();

iText7

Nugets:

Ouvrir et fermer document

PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
// Manipulations
pdfDoc.Close();

Registered Fonts

var registeredFonts = FontProgramFactory.GetRegisteredFonts();
registeredFonts.Dump(); // LinqPad
PdfFont font = PdfFontFactory.CreateRegisteredFont("times-roman");

Enregistrer une police:

FontProgramFactory.RegisterFont(
  Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), "my_fonts", "my-font.otf"),
  "myfont");
 
// Par la suite on peut utiliser la font:
PdfFont myfont = PdfFontFactory.CreateRegisteredFont("myfont");

Ajouter du texte

Color colorBlue = new DeviceRgb(0, 0, 255); // using
 
PdfCanvas canvas = new PdfCanvas(pdfDoc.GetFirstPage());
 
canvas
  .BeginText()
  .SetFontAndSize(PdfFontFactory.CreateRegisteredFont("times"), 8f)
  .MoveText(100.4d, 230d)
  .ShowText("Texte ajouté")
  .EndText()
  .BeginText() // Rien nous empêche de continuer à chainer du nouveau texte
  .SetFillColor(colorBlue)
  .SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA), 12)
  .MoveText(429.4d, 100d)
  .ShowText("Autre texte en bleu")
  .EndText();

Références using

Ils ne sont pas nécessairement tous utilisés, mais ce sont ceux ajoutés pour des cas simples de manipulation de documents:

Références:

using iText.IO.Font;
using iText.IO.Font.Constants;
using iText.Kernel.Colors;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas;
using iText.Layout;
using iText.Layout.Element;