<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>分割 アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/%E5%88%86%E5%89%B2/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/分割/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Tue, 29 Aug 2023 13:35:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>分割 アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/分割/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>【PowerShell】PDFを1ページずつ分ける方法【簡単】</title>
		<link>https://nyanblog2222.com/windows/5271/</link>
					<comments>https://nyanblog2222.com/windows/5271/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 27 Aug 2023 12:54:31 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Web全般]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[iTextSharp]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[windows10]]></category>
		<category><![CDATA[分割]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=5271</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4.png 800w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4-768x401.png 768w" sizes="(max-width: 800px) 100vw, 800px" />PDFを好きに分割したいなぁ…。と考えることがあり今回はPowerShellとiTextSharpを使用して作ってみました。 ちなみにオンラインツールでAdobeやilovePDFでPDFカットというのがあるようですね！ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/windows/5271/">【PowerShell】PDFを1ページずつ分ける方法【簡単】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4.png 800w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_4-768x401.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" />
<p>PDFを好きに分割したいなぁ…。と考えることがあり<br>今回はPowerShellとiTextSharpを使用して作ってみました。</p>



<p>ちなみにオンラインツールで<a href="https://www.adobe.com/jp/acrobat/online/split-pdf.html" class="broken_link">Adobe</a>や<a href="https://www.ilovepdf.com/ja/split_pdf">ilovePDFでPDFカット</a>というのがあるようですね！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">コードを紹介する前に</a></li><li><a href="#toc2" tabindex="0">フォルダ構成</a></li><li><a href="#toc3" tabindex="0">iTextSharpの準備</a></li><li><a href="#toc4" tabindex="0">コード</a></li><li><a href="#toc5" tabindex="0">実行</a><ol><li><a href="#toc6" tabindex="0">実行コマンド</a></li><li><a href="#toc7" tabindex="0">フォルダ</a></li></ol></li><li><a href="#toc8" tabindex="0">補足</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">コードを紹介する前に</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>itextsharpはライセンスが複雑になってきたそうで、取り扱いに注意する必要があるみたいです。<br>pdfsharpというのもあるみたいですね！</p>
</div></div>



<p><a href="https://qiita.com/toshi71/items/bc05d6e15edd645c8f46">iTextSharpのライセンスについてはこちらを参考にしました。</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>今回は作ってみただけなのでこのままコードを紹介します！</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">フォルダ構成</span></h2>



<p>フォルダ構成はこちらです。</p>



<p><span class="marker-under">注意点：事前にnewフォルダに同じPDFファイルがある場合は上書きされます。</span></p>



<pre class="wp-block-code python"><code>■どこかのフォルダ
┣■new　… 無くても処理中に生成されます
┣・itextsharp.dll
┣・pdf_split.ps1
┗・分割したいPDFファイル</code></pre>



<h2 class="wp-block-heading"><span id="toc3">iTextSharpの準備</span></h2>



<p>こちらのページからバージョンを選択します。<br>ページ下部の<span class="bold-red">「+ Show more」をクリック</span>するとさらにバージョンが出てきます。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-detail">

<a rel="noopener" href="https://www.nuget.org/stats/packages/iTextSharp?groupby=Version" title="
        NuGet Gallery
        | Package Downloads for iTextSharp
    " class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.nuget.org%2Fstats%2Fpackages%2FiTextSharp%3Fgroupby%3DVersion?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">
        NuGet Gallery
        | Package Downloads for iTextSharp
    </div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.nuget.org/stats/packages/iTextSharp?groupby=Version" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.nuget.org</div></div></div></div></a>
</div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="972" height="446" src="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_3.png" alt="" class="wp-image-5287" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_3.png 972w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_3-300x138.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_3-768x352.png 768w" sizes="auto, (max-width: 972px) 100vw, 972px" /></figure>



<p><span class="bold-red">「Download package」</span>からインストールしてください。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1013" height="607" src="https://nyanblog2222.com/wp-content/uploads/2023/08/image.png" alt="" class="wp-image-5283" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/image.png 1013w, https://nyanblog2222.com/wp-content/uploads/2023/08/image-300x180.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/image-768x460.png 768w" sizes="auto, (max-width: 1013px) 100vw, 1013px" /></figure>



<p>ファイルが<span class="bold-red">「itextsharp.???.nupkg」</span>でダウンロードされますが、<span class="marker-under">zipファイルなので解凍してください</span>。</p>



<p>出来ない場合はitextsharp.???<span class="bold-red">.nupkg</span>をitextsharp.???<span class="bold-red">.zip</span>に名前を変更すると右クリックでも解凍できると思います。<br>※ ???はバージョンです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="814" height="254" src="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_2.png" alt="" class="wp-image-5286" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_2.png 814w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_2-300x94.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/20230827_2-768x240.png 768w" sizes="auto, (max-width: 814px) 100vw, 814px" /></figure>



<p>「itextsharp.???\lib\<span class="bold-red">itextsharp.dll</span>」ファイルを使用するので、<br>powershellのファイルが置いてある場所にコピーしてください。</p>



<pre class="wp-block-code python"><code>■どこかのフォルダ
┣■new　… 無くても処理中に生成されます
┣・<span class="bold-red">itextsharp.dll</span>
┣・pdf_split.ps1
┗・分割したいPDFファイル</code></pre>



<p>■：フォルダ<br>・：ファイル</p>



<h2 class="wp-block-heading"><span id="toc4">コード</span></h2>



<p>以下がpdf_split.ps1のコードになります。<br>解説はコメントに記載しました。</p>



<p>※ <span class="bold-red">$args</span>というのは引数が入った配列で$args[0]は第1引数になります。<br>この後実行する際に出てきます。</p>



<pre class="wp-block-code python"><code># 現在のディレクトリを取得
$currentDir = Get-Location
Set-Location $currentDir

# itextsharp.dllのロード
# 絶対パスを記載してください。
&#91;System.Reflection.Assembly]::LoadFrom("C:\？？？\itextsharp.dll");

# 分割PDFの生成先フォルダパス
if(-! (Test-Path "./new")) {
    New-Item new -ItemType Directory
}
$destFolderPath = Join-Path $currentDir "new"

# inputのPDFパスを設定し、readerを生成
$srcPath = $args&#91;0]
$pdfReader = New-Object iTextSharp.text.pdf.PdfReader($srcPath)

# ファイル名（拡張子なし）
$fileName = &#91;System.IO.Path]::GetFileNameWithoutExtension($srcPath)

# ページ数取得し、ページ単位でfor文を回す
$pages = $pdfReader.NumberOfPages
for($page = 1; $page -le $pages; $page++) {

    # 出力する分割PDFのファイルパスを設定
    $destPath = Join-Path $destFolderPath ($fileName + "_" + $page + ".pdf")

    # ファイル生成に必要なオブジェクトを生成
    $fileStream = New-Object System.IO.FileStream($destPath, &#91;System.IO.FileMode]::Create)
    $document = New-Object iTextSharp.text.Document($pdfReader.GetPageSize($page))
    $pdfWriter = &#91;iTextSharp.text.pdf.PdfWriter]::GetInstance($document, $fileStream)

    # PDFファイルをオープンし、新規ページを作成
    $document.Open()
    $document.NewPage() | Out-Null

    # ページを読み込み、先ほど作成した新規ページに読み込んだページを書き込みます。
    $readPage = $pdfWriter.GetImportedPage($pdfReader, $page)
    $pdfWriter.DirectContent.AddTemplate($readPage, 0, 0)

    # reader以外のオブジェクトをクローズ
    $document.Close()
    $fileStream.Close()
    $pdfWriter.Close()
}
# 全てのページの処理が完了後readerをクローズ
$pdfReader.Close()
</code></pre>



<h2 class="wp-block-heading"><span id="toc5">実行</span></h2>



<p>Windows Powershellを起動します。</p>



<h3 class="wp-block-heading"><span id="toc6">実行コマンド</span></h3>



<p>cdコマンドでカレントディレクトリを変更</p>



<pre class="wp-block-code python"><code>cd ps1ファイルがあるディレクトリ</code></pre>



<p>pdfファイルの絶対パスを引数にpdf_split.ps1を実行</p>



<pre class="wp-block-code python"><code>./pdf_split.ps1 "pdfファイルの絶対パス"</code></pre>



<p>これでnewフォルダに分割pdfができあがります！</p>



<h3 class="wp-block-heading"><span id="toc7">フォルダ</span></h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="853" height="285" src="https://nyanblog2222.com/wp-content/uploads/2023/08/4.png" alt="" class="wp-image-5305" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/4.png 853w, https://nyanblog2222.com/wp-content/uploads/2023/08/4-300x100.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/4-768x257.png 768w" sizes="auto, (max-width: 853px) 100vw, 853px" /><figcaption class="wp-element-caption">実行後</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="853" height="257" src="https://nyanblog2222.com/wp-content/uploads/2023/08/3.png" alt="" class="wp-image-5304" srcset="https://nyanblog2222.com/wp-content/uploads/2023/08/3.png 853w, https://nyanblog2222.com/wp-content/uploads/2023/08/3-300x90.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/08/3-768x231.png 768w" sizes="auto, (max-width: 853px) 100vw, 853px" /><figcaption class="wp-element-caption">newフォルダの中身</figcaption></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc8">補足</span></h2>



<p>.Netがないと動かないかもしれませんので、その場合はインストールをお願いします。</p>
<p>投稿 <a href="https://nyanblog2222.com/windows/5271/">【PowerShell】PDFを1ページずつ分ける方法【簡単】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/windows/5271/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
