プログラム 技術

DeepLAPIでPDFファイルを変換する(C#版)

以前、C#でDeepLAPIについて記事を書きましたが、今回はPDFファイルをDocxファイルに変換できるようになったらしいので確認してみました
※2024年5月現在ではPDFファイルをDocxファイルに変換することができ、他の拡張子は順次実装予定らしいです

関連記事
DeepLAPIを使ってみる - ナストンのまとめ
DeepLAPIを使ってみる - ナストンのまとめ

DeepLAPIを使えるように設定する DeepLのアカウントを作成する 今回は、以下のサイトにある「DeepL API ...

続きを読む

拡張子変換についての公式ドキュメント(英語で書かれている「Document format conversions」という箇所が今回の記事の内容となっています)

公式サイト
Translate documents | DeepL API Documentation
Translate documents | DeepL API Documentation

続きを読む

翻訳時にファイルの拡張子を変更する

やり方としてはファイルをアップロードする際に【output_format】というパラメーター追加するだけで他は以前の記事と変わりません

var uploadRequest = (HttpWebRequest)WebRequest.Create(uploadUrl);
uploadRequest.Method = "POST";
uploadRequest.Headers.Add("Authorization", "DeepL-Auth-Key " + deepAPIAuthCode);
var multipartFormDataContent = new MultipartFormDataContent();
multipartFormDataContent.Add(new StringContent(sourceLang), "target_lang");
// output_formatを追加する(2024年5月現在はPDFファイルからdocxファイルへの変換のみ)
multipartFormDataContent.Add(new StringContent("docx"), "output_format");
multipartFormDataContent.Add(new ByteArrayContent(File.ReadAllBytes(targetFile)), "file", translatFileName);
uploadRequest.ContentType = multipartFormDataContent.Headers.ContentType.ToString();
uploadRequest.ContentLength = multipartFormDataContent.Headers.ContentLength.Value;
using (var stream = uploadRequest.GetRequestStream())
{
    multipartFormDataContent.CopyToAsync(stream).Wait();
}
using(var response = uploadRequest.GetResponse())
using (var stream = response.GetResponseStream())
{
    var reader = new StreamReader(stream, Encoding.UTF8);
    var result = reader.ReadToEnd();
    var deepLResponseData = JsonSerializer.Deserialize<DocumentUploadResponseData>(result);
    documentId = deepLResponseData.document_id;
    documentKey = deepLResponseData.document_key;
}

注意点

翻訳したファイルをダウンロードする際にファイルの拡張子を.pdfファイルから.docxファイルに変換する必要があります

using (var response = downloadRequest.GetResponse())
using (var stream = response.GetResponseStream())
{
    // ファイルダウンロード時に拡張子をdocxにする必要がある
    translationFile = Path.Combine(translatFilePath, translatFileBaseName + "_JA" + translatFileExt);
    using (var fileStream = new FileStream(translationFile, FileMode.Create, FileAccess.Write))
    {
        stream.CopyTo(fileStream);
    }
}

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

-プログラム, 技術
-, ,