J'ai déjà répondu à cette question, mais dans le but d'ajouter de solides exemples aux sujets de ce site (quelque chose dont j'avais terriblement besoin il y a trois mois), je vais parcourir la solution que j'ai utilisée. J'ai téléchargé MuPDF et est allé dans le dossier bin, récupérer le fichier mutool.exe. J'appelle alors ceci avec un processus séparé en C#. Il parcourt toutes les polices incorporées dans le fichier PDF et les stocke dans le dossier contenant mutool.exe. Ensuite, il était juste une question de déplacer les polices à partir de là dans le dossier que je voulais dans.
/// <summary>
/// Extract all fonts from PDF
/// </summary>
/// <param name="strPDFName"></param>
public static void ExtractAll(string strPDFName)
{
if (strMUTOOL != null && strFontFinal != null)
{
Process p = new Process();
p.StartInfo.FileName = strMUTOOL;
p.StartInfo.Arguments = "extract \"" + strPDFName + "\"";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WorkingDirectory = strMUTOOL.Replace("mutool.exe", "").Trim();
p.Start();
p.WaitForExit();
var standardError = p.StandardError.ReadToEnd();
var standardOutput = p.StandardOutput.ReadToEnd();
var exitCode = p.ExitCode;
}
}
un peu comme un heads-up, la plupart de ces polices sont des fichiers CFF et vous aurez besoin de les convertir si vous prévoyez de les utiliser. Aussi, comme cela a été indiqué, l'utilisation de ces polices peut constituer un piratage de logiciels si ces polices sont des polices payantes. Enfin, ces polices ne sont généralement que des sous-ensembles et ne contiennent pas le jeu complet de glyphes - seulement les glyphes utilisés dans le PDF.
Ceci est considéré comme du piratage sauf si les polices incorporées sont dans le domaine public. –
Notre plan est de les transmettre en tant que polices protégées dans un document converti du même type, pas les voler. – kenny
Je devrais ajouter, avec l'approbation du propriétaire du document. – kenny