ホーム > カテゴリ > HTML5・JavaScript >

JavaScriptでPDFファイルのタイトル、作成者などの文書プロパティと初期表示設定を変更する

JavaScriptでPDFファイルの文書プロパティと表示設定を変更するサンプルです。JSのライブラリはオープンソースの「pdf-designer.js」を使用します。

PDFの文書プロパティと表示設定

全ての文書情報を変更して表示設定をサムネイルにします。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="pdf-designer.js" type="text/javascript"></script>
<script type="text/javascript">
var Analyst = null;    

function onChangeFile(event) {
    var reader = new FileReader();
    var file = event.target.files;
    
    document.getElementById("errmsg").innerHTML = '';
    
    reader.onload = function (event) {
        var Stream = new Uint8Array(reader.result);
        
        Analyst = new TPDFAnalyst();
        
        try {
          
            Analyst.LoadFromStream(Stream);
            
            if (Analyst.Encrypt) {
                document.getElementById("p1").innerHTML = 'PDFファイル - 未対応';
                document.getElementById("errmsg").innerHTML = 
                   '暗号化されているファイルには対応していません。';
            } else {
                document.getElementById("p1").innerHTML = 
                    'PDFファイル - [' + Analyst.PageCount +
                    'ページ / PDF' + Analyst.Version + ']';
            }
        } catch (e) {
            Analyst = null;
            document.getElementById("p1").innerHTML = 'PDFファイル - 未対応';      
            document.getElementById("errmsg").innerHTML = 'このファイルは未対応です。';
        }
    }
    reader.readAsArrayBuffer(file[0]);
}

function run() {        
    var PDFInfoMaker = new TPDFInfoMaker();

    if (Analyst != null) {
        try {           
            
              // 文書情報
              PDFInfoMaker.Info.Title = 'タイトル';
              PDFInfoMaker.Info.Subject = 'サブタイトル';
              PDFInfoMaker.Info.Author = '作成者';
              PDFInfoMaker.Info.Keywords = 'キーワード';
              PDFInfoMaker.Info.Creator = 'アプリケーション';
              PDFInfoMaker.Info.Producer = 'PDF変換';
              PDFInfoMaker.Info.CreationDate = PDF_GetDateTime_Now();
              PDFInfoMaker.Info.ModDate      = PDF_GetDateTime_Now();
               
              // 表示設定(サムネイル)
              PDFInfoMaker.View.PageMode = TPDFPageMode.pmUseThumbs;
                                                                                                  
              PDFInfoMaker.SaveToFile(PDF_GetDateTime_Now() + '.pdf', Analyst);
            
        } catch (e) {
            Analyst[0] = null;
            Analyst[1] = null;
            
            document.getElementById("errmsg").innerHTML = 
              'PDFファイルの変換に失敗しました。 ';
        }
    } else {
        document.getElementById("errmsg").innerHTML =
          'ファイルを選択して下さい。';
    }
}
</script>
</head>
<body>
<h1>PDFの文書プロパティと表示設定</h1>
<hr>
<p>全ての文書プロパティを変更して表示設定をサムネイルにします。</p>
<p id="errmsg" style="color:red;"></p>   
<p id="p1"></p>
<input type="file" id="inputfile1" accept="application/pdf" onchange="onChangeFile(event)"><br>
<br>
<br>
<br>
<button id="run" style="width:200px;height:30px;" onclick="run();">開始</button>
</body>
</html>

対応しているファイル

「Microsoft Office、OpenOffice、Chrome」などで作成されたPDFファイルです。形式で言いますとPDF1.4形式(ISO 19005-1など)に準拠しているファイルです。「PDFの純正ツール」で作成したPDF1.5形式以降のファイルは基本的に対応していません。但し、PDF1.5形式以降のファイルでも内部的にPDF1.4形式ならば読み込めます。





関連記事



公開日:2015年12月30日
記事NO:01674