display pdf from byte array c# : Rotate pdf pages individually Library software component .net windows wpf mvc 1200%20macro_examples34-part152

341
For i = 1 To N
V(i) = .HPageBreaks(i).Location.Row
Next i
End With
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
PageBreakRows = V
End Function
Function PageBreakColumns() As Variant
Dim V As Variant, N As Long, i As Long
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
With ActiveSheet
N = .VPageBreaks.Count
ReDim V(0 To N)
V(0) = 1
For i = 1 To N
V(i) = .VPageBreaks(i).Location.Column
Next i
End With
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
PageBreakColumns = V
End Function
Function ColBreaks() As Variant
Dim V As Variant
Dim i As Long, b As Long
ReDim V(0 To 0)
V(0) = 1
On Error Resume Next
i = 1
Do
b = _
ExecuteExcel4Macro("INDEX(GET.DOCUMENT(65)," & i & ")")
If Err Then Exit Do
ReDim Preserve V(0 To i)
V(i) = b
i = i + 1
Loop
ColBreaks = V
End Function
Function RowBreaks() As Variant
Dim V As Variant
Dim i As Long, b As Long
ReDim V(0 To 0)
V(0) = 1
On Error Resume Next
i = 1
Do
b = _
ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64)," & i & ")")
Rotate pdf pages individually - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
reverse page order pdf; rotate individual pages in pdf reader
Rotate pdf pages individually - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
pdf page order reverse; how to rotate all pages in pdf in preview
342
If Err Then Exit Do
ReDim Preserve V(0 To i)
V(i) = b
i = i + 1
Loop
RowBreaks = V
End Function
15.20 How To Find Next Automatic Page Break
First, define a name in the worksheet, like PBs with a refers to as =GET.DOCUMENT(64).  This
will give an array of rows where the pagebreaks are.  You can now use INDEX(PBS,1) to get the
first row, INDEX(PBs,2) for the 2nd.  A number 4 means the page break is between rows 3 & 4.
Several other approaches are:
For j = 1 To ActiveSheet.HPageBreaks.Count
MsgBox ActiveSheet.HPageBreaks(j).Location.Row
Next
For j = 1 To ActiveSheet.VPageBreaks.Count
MsgBox ActiveSheet.VPageBreaks(j).Location.Column
Next
or
For Each pb In ActiveSheet.VPageBreaks
MsgBox pb.Location.Column
Next
15.21 Removing Page Breaks
You can remove all page breaks on a sheet with the following statement in all versions of Excel:
Cells.PageBreak = xlNone
The documentation in Excel says that you should usexlPageBreakNone, but no such constant
exists.
To remove both horizontal and vertical page breaks at a particular location use a statement like
the following:
ActiveCell.PageBreak = xlNone
To remove just vertical page breaks, use a statement like the following:
ActiveCell.EntireColumn.PageBreak = xlNone
to remove just a horizontal page break, use a statement like the following:
How to C#: Modify Color and Contrast
will adjust red, green and blue three channels with gamma parameter, or you can choose the GammaImageChannel method to adjust the three channels individually.
how to rotate all pages in pdf; pdf reverse page order
C# TIFF: C#.NET Code to Process TIFF, RasterEdge XDoc.Tiff for .
image and document formats are: TIFF, JPEG, GIF, BMP, PNG, PDF, Word and You can also reorder or remove pages from Tiff files public void Rotate(RotateOder order
how to rotate a single page in a pdf document; pdf rotate one page
343
Cells(3,4).EntireRow.PageBreak = xlNone
15.22 Printing Each Row In A Selection Onto A
Separate Page
The following code will print out each row in a selection onto a separate page.  For example, if
you select the range A1:D9, the page one would have A1:D1, page two would have A2:D2, and
so forth:
Dim rng As Range
Dim r As Range
'restrict the range to the used range so that entire rows are not printed
Set rng = Intersect(ActiveSheet.UsedRangeSelection)
'rotate through each row in the selected range
For Each r In rng.Rows
'printout the row
r.PrintOut
Next
15.23 Printing From A Dialogsheet
You can print directly from a userform.  However you can not print directly from a dialogsheet.
Instead, you must dismiss the dialog before printing.  This example shows how to write your
code so that you can display a dialog with buttons, with each set to print a different report.  When
the user clicks on a button, the dialog is dismissed, the report printed, and the dialog redisplayed.
In this example, the dialog sheet is named "Report Dlg", and it has two buttons in addition to the
OK and Cancel buttons.  Button 1 is for report 1 and Button 2 is for report 2.  Both buttons have
had their dismiss properties turned on.  To do this, select a button, and click on the control
properties buttons.  Click on the dismiss property.  When the dismiss property is set on, it causes
the dialog to close when the button is clicked.
Also, button 1 has been assigned macro "Report1Flag" and button 2 has been assigned macro
"Report2Flag".  This is done by selecting a button and right clicking on it.  In the pop
-
up that
appears, select the assign macro option and select a macro.  Macros "Report1Flag" and
"Report2Flag" do a very simple task:  They set a module level variable to a value of 1 or 2.  This
variable is then used in the main macro to print the appropriate report.
For the following code to work, you will need to create a worksheet named "My Reports" and
name two ranges "Report1" and "Report2"
The following is the code:
344
'this variable is declared at the top of the module, before any macros
Dim reportNumber As Integer
Sub Print_Reports()
'create a loop that continually displays the dialog
Do
'initialize the reportNumber variable before each use
reportNumber = 0
'display the dialog; exit loop if cancel selected
If Not DialogSheets("Reports Dlg").Show Then Exit Do
'run print report macro based on reportNumber value
Select Case reportNumber
Case 1: Print_Report1
Case 2: Print_Report2
End Select
'loop to redisplay the dialog
Loop
End Sub
Sub Report1Flag()
'set flag variable for report 1
'assign this macro to the report 1 button
reportNumber = 1
End Sub
Sub Report2Flag()
'set flag variable for report 2
'assign this macro to the report 2 button
reportNumber = 2
End Sub
Sub Print_Report1()
'set the print area using a range name on the worksheet
345
Sheets("My Reports").PageSetup.PrintArea = _
Sheets("My Reports").Range("report_1").Address
'printout the sheet
Sheets("My Reports").PrintOut
End Sub
Sub Print_Report2()
'this is like the above except it uses a With..End With construction to
'make the code more efficient
With Sheets("My Reports")
.PageSetup.PrintArea = .Range("report_2").Address
.PrintOut
End With
End Sub
15.24 How To Printout A Sheet Or An Entire
Workbook
If you want to print a sheet, use thePrintOut method:  For example:
ActiveSheet.PrintOut
or use an object variable
Dim oSheet As Worksheet
Set oSheet = Workbooks("MyBook.Xls").Sheets("sheet1")
oSheet.Printout
If you want to print an entire workbook, then specify the workbook as the object to thePrintout
method.  For example:
ActiveWorkbook.Printout
or
Workbooks("MyBook.Xls").Sheets("sheet1").Printout
15.25 Printing All The Files In A Directory
The following code illustrates how to open all the files in a directory, print the entire workbook,
and then close the files.
Dim FName As String
Dim WB As Workbook
346
'get the first workbook to open
FName = Dir("C:\Tmp\*.xls")
While FName <> ""
'open the workbook and set to a variable
Set WB = Workbooks.Open(Filename:="c:\tmp\" & FName, _
updatelinks:=False)
'print and then close the workbook
WB.PrintOut
WB.Close False
'get the next workbook
FName = Dir()
Wend
The following code opens all the files in a directory, prints all the sheets in the files, saves the
file to a new directory, and then deletes the file from the original directory.
Sub PrintFiles()
Dim XLSFiles() As String
Dim NumFiles As Integer
Dim N As Integer
Dim oS
'use user defined function to populate the array of files to open
'and to return the number of files to open
NumFiles = GetFileNames(XLSFiles())
'only open files if there are any to open
If NumFiles > 0 Then
For N = 1 To NumFiles
'open workbook, do not update links
Workbooks.Open XLSFiles(N), False
'print all the worksheets in the workbook
For Each oS In WorkSheets
oS.PrintOut
Next
'save the workbook to another directory
' the with statement avoids having to type ActiveWorkbook in front
347
'of Save and in front of Name.
'Periods are required in front of Save and Name.
With ActiveWorkbook
.Save "c:\New dir\" & .Name
End With
'delete the original file.  Note, file is not recoverable
Kill XLSFiles(N)
Next fName
End If
End Sub
'this function's argument is a string array and
'the function returns an integer value
Function GetFileNames(FileNames() As String) As Integer
Dim fName As String
Dim N As Integer
N = 0
fName = Dir$("C:\First Directory\*.xls")
Do While fName <> ""
'increase the number of files found each time through
N = N + 1
'expand the array and retain existing values
ReDim Preserve FileNames(1 To N) As String
FileNames(N) = "C:\First Directory\" & fName
fName = Dir$()
Loop
'set the function equal to the number of files found
GetFileNames = N
End Function
15.26 Printing Embedded Charts
If you use the recorder to record the actions of printing a series of embedded charts, you will get
a lot of lines.  The following illustrates the recorder code to print just two embedded charts:
Sub RecorderCodeToPrintEmbeddedCharts()
ActiveSheet.DrawingObjects("Chart 1").Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.PrintOut
ActiveWindow.Visible = False
348
Windows("Book2").Activate
ActiveSheet.DrawingObjects("Chart 2").Select
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.PrintOut
ActiveWindow.Visible = False
Windows("Book2").Activate
Range("H28").Select
End Sub
The same code can be condensed to just two statements:
Sub PrintEmbeddedCharts()
ActiveSheet.DrawingObjects("Chart 1").Chart.PrintOut
ActiveSheet.DrawingObjects("Chart 2").Chart.PrintOut
End Sub
As information, the name of the drawing object is displayed in the name window when you
select the drawing object.  You can edit this name to any name you want.
15.27 Case Of The Disappearing PageBreak Constant
Visual Basis doesn't recognize the constantxlPageBreakNone, even though the online
documentation says this is the one to use.  This is a known bug in Excel.  UsexlNone rather than
xlPageBreakNone.
The following is how you can use this constant to clear all the page breaks from a worksheet.
Sub ClearBreaks()
WorkSheets("Template").Cells.PageBreak = xlNone
End Sub
15.28 Changing the Paper Type on each Sheet in a
Workbook
If you share workbooks with people in other countries, you may find that you need to change the
paper type on all the sheets in the workbooks before you can print.  For example, the standard
paper size in the U.S. is 8 ½ by 11, and in Europe it is A4, which is 210 by 297 mm.
The following code changes all the sheets to the same paper type:
Sub ChangePaperType()
Dim oS
'use a For..Next loop to modify all the sheets.
'Note that the sheets do not have to be activated to change the setting
For Each oS In Sheets
oS.PageSetup.PaperSize = xlPaperA4
Next
End Sub
349
15.29 File Path In Footer
In the before print command for the workbook, you can update it for the sheet being printed:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.LeftFooter=ActiveWorkbook.FullName
End Sub
15.30 Hiding the Windows Print Dialog
The following code by Stratos Malasiotis will hide the Windows print dialog when you do a
printout.  . If you try to play with it to much you may get into problems.  Use Alt+Ctrl+Del and
then Cancel.  The fncScreenUpdating sets the repainting window flag to false and therefore no
WM_PAINT reaches the winproc.
Put the following code in its own module:
Option Explicit
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
As Long
Private Declare Function IsWindow _
Lib "user32" _
( _
ByVal hwnd As Long _
As Long
Private Declare Function InvalidateRect _
Lib "user32" _
( _
ByVal hwnd As Long, _
lpRect As Long, _
ByVal bErase As Long _
) _
As Long
Private Declare Function UpdateWindow _
Lib "user32" _
( _
ByVal hwnd As Long _
As Long
Private Declare Function GetDesktopWindow _
Lib "user32" () _
As Long
350
Public Function fncScreenUpdating _
( _
State As Boolean, _
Optional Window_hWnd As Long = 0 _
)
Const WM_SETREDRAW = &HB
Const WM_PAINT = &HF
If Window_hWnd = 0 Then
Window_hWnd = GetDesktopWindow()
Else
If IsWindow(hwnd:=Window_hWnd) = False Then
Exit Function
End If
End If
If State = True Then
Call SendMessage _
( _
hwnd:=Window_hWnd, _
wMsg:=WM_SETREDRAW, _
wParam:=1, _
lParam:=0 _
)
Call InvalidateRect _
( _
hwnd:=Window_hWnd, _
lpRect:=0, _
bErase:=True _
)
Call UpdateWindow(hwnd:=Window_hWnd)
Else
Call SendMessage _
( _
hwnd:=Window_hWnd, _
wMsg:=WM_SETREDRAW, _
wParam:=0, _
lParam:=0 _
)
End If
End Function
In your code, use statements like the following when you print:
Sub PrintDirect()
fncScreenUpdating State:=False
ActiveSheet.PrintOut
fncScreenUpdating State:=True
End Sub
Documents you may be interested
Documents you may be interested