• R/O
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javaandroidc++linuxc#objective-ccocoa誰得qtrubypythonbathyscaphephpgamewindowsguic翻訳omegattwitterframeworktestbtronarduinovb.net計画中(planning stage)directxpreviewerゲームエンジンdom

デュアルディスプレイのセカンドモニターにPDFを表示。


コミットメタ情報

リビジョン48 (tree)
日時2018-11-28 11:57:44
作者bellyoshi

ログメッセージ

変更サマリ

差分

--- pdfsecondmonitor/frmPdfViewer.vb (revision 47)
+++ pdfsecondmonitor/frmPdfViewer.vb (revision 48)
@@ -29,32 +29,41 @@
2929 End Sub
3030
3131 Private Sub DisplayPage()
32-
3332 If (page >= pdfDoc.PageCount) Then
3433 Return
3534 End If
36- Dim size = pdfDoc.PageSizes(page)
37- Dim h1 = size.Width / size.Height ' // pdfの縦横比
38- Dim h2 = PictureBox1.Width / PictureBox1.Height ' // コントロールの縦横比
39- If (h2 > 10) Then ' 落ちないように Then
35+ Dim renderSize As Size? = GetRenderSize()
36+ If renderSize Is Nothing Then
4037 Return
4138 End If
42- Dim Width = 0, Height = 0
43- If (h1 < h2) Then
39+ Render(renderSize)
40+ End Sub
41+
42+ Private Function GetRenderSize() As Size?
43+ Dim renderSize = New Size(PictureBox1.Size)
44+ Dim pdfSize = pdfDoc.PageSizes(page)
45+ Dim pdfWdivH = pdfSize.Width / pdfSize.Height ' // pdfの縦横比
46+ Dim boxWdivH = PictureBox1.Width / PictureBox1.Height ' // コントロールの縦横比
47+ If (boxWdivH > 10) Then ' 落ちないよう
48+ Return Nothing
49+ End If
50+ If (pdfWdivH < boxWdivH) Then
4451 ' フォーム内にImageを当てはめる判定 {
45- Width = PictureBox1.Height * h1
46- Height = PictureBox1.Height
52+ renderSize.Width = PictureBox1.Height * pdfWdivH
4753 Else
54+ renderSize.Height = PictureBox1.Width / pdfWdivH
55+ End If
56+ Return renderSize
57+ End Function
4858
49- Width = PictureBox1.Width
50- Height = PictureBox1.Width / h1
51- End If
52- Dim img = pdfDoc.Render(page, Width, Height, 96, 96, False) ' // 解像度は意味ない?
59+ Private Sub Render(renderSize As Size)
60+ Dim img = pdfDoc.Render(page, renderSize.Width, renderSize.Height, 96, 96, False) ' // 解像度は意味ない?
5361 Dim oldImage = PictureBox1.Image
5462 PictureBox1.Image = img
5563 If oldImage IsNot Nothing Then
5664 oldImage.Dispose() '; // メモリー節約
5765 End If
66+
5867 End Sub
5968
6069 End Class
\ No newline at end of file