Có cách nào chuyển từng trang trong Word sang dạng ảnh (.JPEG) không? (1 người xem)

  • Thread starter Thread starter LinDan
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

LinDan

Thành viên tiêu biểu
Tham gia
8/2/12
Bài viết
412
Được thích
111
File Word (dạng file mềm) của em có khoảng 10 trang, nay em muốn chuyển từng trang sang một sang dạng file ảnh (đuôi JPEG) có được không ah? Liệu có cách nào làm nhanh được thay vì cứ phải chụp ảnh màn hình từng trang?

Em rất mong mọi người chỉ dùm (kể cả cách sử dụng Code cũng được ah)?

------
Em đang rất cần chuyển sang dạng file ảnh đuôi JPEG, JPE (chứ không phải dạng PDF) ah.
 
File Word (dạng file mềm) của em có khoảng 10 trang, nay em muốn chuyển từng trang sang một sang dạng file ảnh (đuôi JPEG) có được không ah? Liệu có cách nào làm nhanh được thay vì cứ phải chụp ảnh màn hình từng trang?

Em rất mong mọi người chỉ dùm (kể cả cách sử dụng Code cũng được ah)?

------
Em đang rất cần chuyển sang dạng file ảnh đuôi JPEG, JPE (chứ không phải dạng PDF) ah.

Nếu bạn dùng Office 2010 thì bạn nên xem qua bài này:
http://www.wikihow.com/Change-a-Word-Document-to-JPEG-Format
Thậm chí là không cần bất cứ phần mềm nào cũng chuyển được tuốt. Nguyên tắc là chuyển Word sang OneNote, từ đó muốn làm gì tiếp cứ tùy ý ---> Mỗi trang word sẽ là 1 Picture
 
Nếu bạn dùng Office 2010 thì bạn nên xem qua bài này:
http://www.wikihow.com/Change-a-Word-Document-to-JPEG-Format
Thậm chí là không cần bất cứ phần mềm nào cũng chuyển được tuốt. Nguyên tắc là chuyển Word sang OneNote, từ đó muốn làm gì tiếp cứ tùy ý ---> Mỗi trang word sẽ là 1 Picture

Đúng ý của em rồi ah, nhưng em cài Word2010 từ chiều mà chưa được, tuy nhiên em chưa hiểu lắm về:
1) Chức năng của Word2010 ở đây có tác dụng gì trong việc chuyển đổi? Office2007 có chức năng này không?

2) Theo như thày ở đoạn trên "Nguyên tắc là chuyển Word sang OneNote" em tạm hiểu là chuyển sang đối tượng thông minh? Em chưa thực hiện được bước kéo thả (Click and drag the box over the document) này như thế nào?

Phiền thày chỉ giúp cho ah.
 
Đúng ý của em rồi ah, nhưng em cài Word2010 từ chiều mà chưa được, tuy nhiên em chưa hiểu lắm về:
1) Chức năng của Word2010 ở đây có tác dụng gì trong việc chuyển đổi? Office2007 có chức năng này không?

2) Theo như thày ở đoạn trên "Nguyên tắc là chuyển Word sang OneNote" em tạm hiểu là chuyển sang đối tượng thông minh? Em chưa thực hiện được bước kéo thả (Click and drag the box over the document) này như thế nào?

Phiền thày chỉ giúp cho ah.

Tôi không biết Word 2007 có làm được không, tuy nhiên tôi thí nghiệm trên Word 2010 như sau:
1> Mở 1 file word
2> Vào File\Print. Mục Printer chọn Send to OneNote
3> Nếu trên máy tính chưa lần lần nào khởi động OneNote, nó sẽ yêu cầu bạn khởi động 1 lần trước khi thực hiện thao tác Print
4> Chạy lệnh Print xong, OneNote sẽ mở ra với tài liệu Word đã được convert
5> Trong cửa sổ OneNote, bạn có thể click phải từng tấm hình rồi SaveAs tùy thích
6> Muốn Save 1 lần nhiều hình, ta tiến hành bước 7
7> Trong cửa số OneNote, SaveAs tài liệu thành dạng Word Document
8> Mở tài liệu đã Save từ OneNote (bằng MS Word) ---> Tài liệu mới này sẽ hoàn toàn khác với tài liệu gốc vì bây giờ mỗi trang sẽ là 1 hình
9> Muốn Save toàn bộ hình vào đĩa cứng, có thể viết code để thực thị 1 lần
Có thể tham khảo cách biến các Object thành Picture tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?46973-Tạo-ListBoxt-với-RowSoure-là-các-hình-vẽ
Nếu bạn không làm được, cứ đưa file word lên đây, tôi làm giúp cho
---------------
Tóm lại, nguyên tắc là:
- Mở word rồi convert tài liệu sang OneNote, mục đích để nó chuyển mỗi trang thành 1 hình
- Mở OneNote, SaveAs lại thành Word
- Từ Word, có thể Save hình bằng tay hoặc thực thi Save nhiều hình cùng lúc bằng code
- Nếu không quá chú trọng về định dạng hình, có thể từ Word, Save As thành Web Page ----> Tài liệu sau khi Save thành Web Page sẽ có đủ tất cả các hình bạn cần (có điều chúng có thể không phải định dạng JPG)
 
Lần chỉnh sửa cuối:
Tôi không biết Word 2007 có làm được không, tuy nhiên tôi thí nghiệm trên Word 2010 như sau:
1> Mở 1 file word
2> Vào File\Print. Mục Printer chọn Send to OneNote
3> Nếu trên máy tính chưa lần lần nào khởi động OneNote, nó sẽ yêu cầu bạn khởi động 1 lần trước khi thực hiện thao tác Print
4> Chạy lệnh Print xong, OneNote sẽ mở ra với tài liệu Word đã được convert
5> Trong cửa sổ OneNote, bạn có thể click phải từng tấm hình rồi SaveAs tùy thích
Word2007 em làm bắt đầu đến bước này rồi nhưng chưa biết... Save as như thế nào để ra JPEG cả, nhờ thày chỉ cho ah.
 

File đính kèm

Word2007 em làm bắt đầu đến bước này rồi nhưng chưa biết... Save as như thế nào để ra JPEG cả, nhờ thày chỉ cho ah.

Bạn mở file word lên, bấm Alt + F11, chèn 1 Module. Xong copy code dưới đây paste vào:
PHP:
Private Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(0 To 7) As Byte
End Type
 
Private Type uPicDesc
  Size As Long
  Type As Long
  hPic As Long
  hPal As Long
End Type
     
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Integer) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As uPicDesc, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
Private Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function CopyImage Lib "user32" (ByVal handle As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
Public sPath
PHP:
[php]
Function PictureFromObject(ByVal Target As Object) As IPictureDisp
  Dim hPtr As Long, hCopy As Long, PicType As Long
  Const CF_BITMAP = 2
  Const CF_PALETTE = 9
  Const CF_ENHMETAFILE = 14
  Const IMAGE_BITMAP = 0
  Const LR_COPYRETURNORG = &H4
  Const PicType_BITMAP = 1
  Const PicType_ENHMETAFILE = 4
  Target.CopyAsPicture 
  PicType = IIf(IsClipboardFormatAvailable(CF_BITMAP) <> 0, CF_BITMAP, CF_ENHMETAFILE)
  If IsClipboardFormatAvailable(PicType) <> 0 Then
    If OpenClipboard(0) > 0 Then
      hPtr = GetClipboardData(PicType)
      If PicType = CF_BITMAP Then
        hCopy = CopyImage(hPtr, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG)
      Else
        hCopy = CopyEnhMetaFile(hPtr, vbNullString)
      End If
      CloseClipboard
      If hPtr <> 0 Then
        Dim uPicInfo As uPicDesc, IID_IDispatch As GUID, IPic As IPictureDisp
        With IID_IDispatch
          .Data1 = &H7BF80980
          .Data2 = &HBF32
          .Data3 = &H101A
          .Data4(0) = &H8B
          .Data4(1) = &HBB
          .Data4(2) = &H0
          .Data4(3) = &HAA
          .Data4(4) = &H0
          .Data4(5) = &H30
          .Data4(6) = &HC
          .Data4(7) = &HAB
        End With
        With uPicInfo
          .Size = Len(uPicInfo)
          .Type = IIf(PicType = CF_BITMAP, PicType_BITMAP, PicType_ENHMETAFILE)
          .hPic = hCopy
        End With
        OleCreatePictureIndirect uPicInfo, IID_IDispatch, True, IPic
        Set PictureFromObject = IPic
      End If
    End If
  End If
End Function
PHP:
Sub Main()
  Dim IPic As IPictureDisp, shp As Object, i As Long
  Dim shl As Object, fso As Object
  On Error GoTo ExitSub
  Set shl = CreateObject("Shell.Application")
  Set fso = CreateObject("Scripting.FileSystemObject")
  If (Len(sPath) = 0) Or (Not fso.FolderExists(sPath)) Then
    sPath = shl.BrowseForFolder(0, "", 1).Self.Path
  End If
  If TypeName(sPath) = "String" Then
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
    If fso.FolderExists(sPath) Then
      With ActiveDocument
        For i = 1 To .InlineShapes.Count
          .InlineShapes(i).Select
          Set shp = Selection
          Set IPic = PictureFromObject(shp)
          SavePicture IPic, sPath & "Pic" & i & ".jpg"
        Next
      End With
    End If
  End If
ExitSub:
End Sub
Xong, chạy Sub Main sẽ có ngay kết quả
Có thể xem code chi tiết trong file đính kèm
 

File đính kèm

Bạn mở file word lên, bấm Alt + F11, chèn 1 Module. Xong copy code dưới đây paste vào:
PHP:
Private Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(0 To 7) As Byte
End Type
 
Private Type uPicDesc
  Size As Long
  Type As Long
  hPic As Long
  hPal As Long
End Type
     
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Integer) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As uPicDesc, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
Private Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function CopyImage Lib "user32" (ByVal handle As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
Public sPath
PHP:
[php]
Function PictureFromObject(ByVal Target As Object) As IPictureDisp
  Dim hPtr As Long, hCopy As Long, PicType As Long
  Const CF_BITMAP = 2
  Const CF_PALETTE = 9
  Const CF_ENHMETAFILE = 14
  Const IMAGE_BITMAP = 0
  Const LR_COPYRETURNORG = &H4
  Const PicType_BITMAP = 1
  Const PicType_ENHMETAFILE = 4
  Target.CopyAsPicture 
  PicType = IIf(IsClipboardFormatAvailable(CF_BITMAP) <> 0, CF_BITMAP, CF_ENHMETAFILE)
  If IsClipboardFormatAvailable(PicType) <> 0 Then
    If OpenClipboard(0) > 0 Then
      hPtr = GetClipboardData(PicType)
      If PicType = CF_BITMAP Then
        hCopy = CopyImage(hPtr, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG)
      Else
        hCopy = CopyEnhMetaFile(hPtr, vbNullString)
      End If
      CloseClipboard
      If hPtr <> 0 Then
        Dim uPicInfo As uPicDesc, IID_IDispatch As GUID, IPic As IPictureDisp
        With IID_IDispatch
          .Data1 = &H7BF80980
          .Data2 = &HBF32
          .Data3 = &H101A
          .Data4(0) = &H8B
          .Data4(1) = &HBB
          .Data4(2) = &H0
          .Data4(3) = &HAA
          .Data4(4) = &H0
          .Data4(5) = &H30
          .Data4(6) = &HC
          .Data4(7) = &HAB
        End With
        With uPicInfo
          .Size = Len(uPicInfo)
          .Type = IIf(PicType = CF_BITMAP, PicType_BITMAP, PicType_ENHMETAFILE)
          .hPic = hCopy
        End With
        OleCreatePictureIndirect uPicInfo, IID_IDispatch, True, IPic
        Set PictureFromObject = IPic
      End If
    End If
  End If
End Function
PHP:
Sub Main()
  Dim IPic As IPictureDisp, shp As Object, i As Long
  Dim shl As Object, fso As Object
  On Error GoTo ExitSub
  Set shl = CreateObject("Shell.Application")
  Set fso = CreateObject("Scripting.FileSystemObject")
  If (Len(sPath) = 0) Or (Not fso.FolderExists(sPath)) Then
    sPath = shl.BrowseForFolder(0, "", 1).Self.Path
  End If
  If TypeName(sPath) = "String" Then
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
    If fso.FolderExists(sPath) Then
      With ActiveDocument
        For i = 1 To .InlineShapes.Count
          .InlineShapes(i).Select
          Set shp = Selection
          Set IPic = PictureFromObject(shp)
          SavePicture IPic, sPath & "Pic" & i & ".jpg"
        Next
      End With
    End If
  End If
ExitSub:
End Sub
Xong, chạy Sub Main sẽ có ngay kết quả
Có thể xem code chi tiết trong file đính kèm

Em làm kết quả rất tốt thày ah.
------
Nhưng quả là em vẫn không biết cách Save as thủ công thế nào để nó ra từng ảnh. Xin thày và mọi nguời chỉ giúp
 
Em làm kết quả rất tốt thày ah.
------
Nhưng quả là em vẫn không biết cách Save as thủ công thế nào để nó ra từng ảnh. Xin thày và mọi nguời chỉ giúp

Bạn click phải vào từng hình, chọn Save As Picture thôi
(không biết Word 2007 có chức năng này không?)

Untitled.jpg


















------------------------
Nhân đây xin hỏi những ai rành về VBA trong word vấn đề: Làm sao duyệt qua các Picture có trong Document mà không phải Select từng tấm hình?
Trong code tôi có đoạn:
Mã:
.InlineShapes(i).Select
Set shp = Selection
Duyệt qua rồi Select... rất vô duyên nhưng lại không biết làm sao khắc phục? Ctrl + A, rồi copy toàn bộ hình "quăng" qua Excel làm xem bộ khỏe hơn (Word nó rắc rối quá)
 
Lần chỉnh sửa cuối:
Bạn click phải vào từng hình, chọn Save As Picture thôi
(không biết Word 2007 có chức năng này không?)

Em cũng đoán thế, nhưng đúng là Word2007 nó không có chức năng này thày ah. Vậy trong trường hợp này mình có giải pháp gì để làm được cho nhanh (hay buộc phải copy sang Photoshop sau đó Save sang JPEG)?
 
Lưu ảnh trong file Word thành file riêng biệt

Em tìm ra phương pháp chuyển hàng loạt trong Word rồi, cách làm khá đơn giản nhưng lại rất hiệu quả thày ah.

-------------
Trong Word 2007, Microsoft giới thiệu một định dạng file mới nền tảng XML là .docx. ĐỊnh dạng này là một ZIP Container, chứa nhiều file XML và mọi ảnh nhúng. Để truy cập vào những ảnh nhúng trong file .docx bạn hãy thực hiện các thao tác sau:

  • Nếu file này chưa phải là một file .docx (chưa được định dạng .docx) thì bạn hãy mở nó Word 2007 sau đó lưu file dưới dạng Word Document (*.docx).

  • Thay đổi phần mở rộng file trên file gốc từ .docx sang .zip (hình 4).
3f3bc9ff35a66752878423579aa0781c.jpg

Hình 4: Chuyển đổi đuôi .docx sang .zip.

  • Sau đó sử dụng ứng dụng ZIP để mở file .zip này, khi đó những file ảnh sẽ được hiển thị trên đầu danh sách (hình 5).
62e3e572acceae1cbde218c863e86787.jpg

Hình 5: Sử dụng ứng dụng ZIP mở file .zip
Và bạn đã có thể copy những file ảnh này vào vị trí mong muốn.
 
Em tìm ra phương pháp chuyển hàng loạt trong Word rồi, cách làm khá đơn giản nhưng lại rất hiệu quả thày ah.

-------------
Trong Word 2007, Microsoft giới thiệu một định dạng file mới nền tảng XML là .docx. ĐỊnh dạng này là một ZIP Container, chứa nhiều file XML và mọi ảnh nhúng. Để truy cập vào những ảnh nhúng trong file .docx bạn hãy thực hiện các thao tác sau:

  • Nếu file này chưa phải là một file .docx (chưa được định dạng .docx) thì bạn hãy mở nó Word 2007 sau đó lưu file dưới dạng Word Document (*.docx).
  • Thay đổi phần mở rộng file trên file gốc từ .docx sang .zip (hình 4).

Hình 4: Chuyển đổi đuôi .docx sang .zip.

  • Sau đó sử dụng ứng dụng ZIP để mở file .zip này, khi đó những file ảnh sẽ được hiển thị trên đầu danh sách (hình 5).

Hình 5: Sử dụng ứng dụng ZIP mở file .zip
Và bạn đã có thể copy những file ảnh này vào vị trí mong muốn.
Cách đó cũng tương tự như cách bài 5 tôi đã giới thiệu rồi còn gì
- Nếu không quá chú trọng về định dạng hình, có thể từ Word, Save As thành Web Page ----> Tài liệu sau khi Save thành Web Page sẽ có đủ tất cả các hình bạn cần (có điều chúng có thể không phải định dạng JPG)
Cách đổi đuôi thành ZIP hoặc RAR chỉ áp dụng được với định dạng docx hoặc xlsx trong khi cách Save As Web Page áp dụng được tất tần tật
 
Nhân đây xin hỏi những ai rành về VBA trong word vấn đề: Làm sao duyệt qua các Picture có trong Document mà không phải Select từng tấm hình?
Trong code tôi có đoạn:
Mã:
.InlineShapes(i).Select
Set shp = Selection
Duyệt qua rồi Select... rất vô duyên nhưng lại không biết làm sao khắc phục? Ctrl + A, rồi copy toàn bộ hình "quăng" qua Excel làm xem bộ khỏe hơn (Word nó rắc rối quá)
Cuối cùng cũng mò ra được cách vượt qua cái "cùi bắp" kia
Mã:
Sub Main()
  Dim IPic As IPictureDisp,[COLOR=#ff0000] shp As InlineShape[/COLOR], i As Long
  Dim shl As Object, fso As Object
  On Error GoTo ExitSub
  Set shl = CreateObject("Shell.Application")
  Set fso = CreateObject("Scripting.FileSystemObject")
  If (Len(sPath) = 0) Or (Not fso.FolderExists(sPath)) Then
    sPath = shl.BrowseForFolder(0, "", 1).Self.Path
  End If
  If TypeName(sPath) = "String" Then
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
    If fso.FolderExists(sPath) Then
      With ActiveDocument
        For Each shp In .InlineShapes
          i = i + 1
          Set IPic = PictureFromObject([COLOR=#ff0000]shp.Range[/COLOR])
          SavePicture IPic, sPath & "Pic" & i & ".jpg"
        Next
      End With
    End If
  End If
ExitSub:
End Sub
Không cần phải Select gì cả
Code này chắc chắn sẽ có ngày dùng tới
 
File Word (dạng file mềm) của em có khoảng 10 trang, nay em muốn chuyển từng trang sang một sang dạng file ảnh (đuôi JPEG) có được không ah? Liệu có cách nào làm nhanh được thay vì cứ phải chụp ảnh màn hình từng trang?

Em rất mong mọi người chỉ dùm (kể cả cách sử dụng Code cũng được ah)?

------
Em đang rất cần chuyển sang dạng file ảnh đuôi JPEG, JPE (chứ không phải dạng PDF) ah.
Mình cũng có 1 câu hỏi tương tự như vậy nhưng nội dung chính xác cần là hình của toàn 1 trang Word cụ thể chứ không phải là những hình nằm trong trang Word đó (giống preview của trang). Mình có thử một số nhưng lại chỉ hiện thị được phần thân thân trang, còn header/footer thì đi mất. Có thể có vài 3rd component làm sẵn cho việc này, nhưng mình chỉ muốn sử dụng các thành phần gói gọn trọng bộ MS-Office hoặc sẵn có của HĐH Windows (nếu áp dụng được cho Word 2003 thì càng tuyệt).

Các bạn có giải đáp nào sát theo nghĩa này không?
 
Lần chỉnh sửa cuối:
Mình cũng có 1 câu hỏi tương tự như vậy nhưng nội dung chính xác cần là hình của toàn 1 trang Word cụ thể chứ không phải là những hình nằm trong trang Word đó (giống preview của trang). Mình có thử một số nhưng lại chỉ hiện thị được phần thân thân trang, còn header/footer thì đi mất. Có thể có vài 3rd component làm sẵn cho việc này, nhưng mình chỉ muốn sử dụng các thành phần gói gọn trọng bộ MS-Office hoặc sẵn có của HĐH Windows (nếu áp dụng được cho Word 2003 thì càng tuyệt).

Các bạn có giải đáp nào sát theo nghĩa này không?

Thì Print kiểu Send to OneNote nó bao gồm luôn Header/footer đấy mà bạn
Có điều nếu bạn dùng Office 2003 thì... TÔI KHÔNG BIẾT
Nếu bạn có nhu cầu, tôi nghĩ đàng nào bạn cũng phải cài 1 phần mềm nào đó, đúng không? Vậy thôi cài Office 2010 cho rồi
 
Lần chỉnh sửa cuối:
Thì Print kiểu Send to OneNote nó bao gồm luôn Header/footer đấy mà bạn
Thử xem!
Em quên đặt điều kiện là chỉ dùng những cái của Word/Excel hay Windows vì nhiều khi cũng chỉ cài 2 phần đó. Nếu anh dùng Office từ 2007 trở lên thì nó có hỗ trợ Preview trang đầu tiên cho mỗi file Word.
Hình như trong cấu trúc docx/xlsx cũng nhúng sẵn hình chụp của trang đầu tiên còn với doc/xls (Office 2003) thì không có.
 
Em quên đặt điều kiện là chỉ dùng những cái của Word/Excel hay Windows vì nhiều khi cũng chỉ cài 2 phần đó. Nếu anh dùng Office từ 2007 trở lên thì nó có hỗ trợ Preview trang đầu tiên cho mỗi file Word.
Hình như trong cấu trúc docx/xlsx cũng nhúng sẵn hình chụp của trang đầu tiên còn với doc/xls (Office 2003) thì không có.

Mình cũng không biết!
Nhưng mình thấy rằng nhiều khi đi tìm phần mềm này phần mềm nọ.. đến cuối cùng mới phát hiện trong máy mình có sẵn
Ví dụ khi trước dùng Windows XP + Office 2003, khi cần chụp hình màn hình thì phải đi tìm 1 phần mềm nào đó (nếu không dùng nút Print Screen). Giờ dùng Windows 7 + Office 2010 thì khỏi cần (cả trong Win và Office đều có Tool chụp hình và xử lý hình)
----------------
Trở lại vấn đề convert trang word thành picture, mình thấy dù gì cũng phải cần 1 phần mềm nào đó. Vậy nếu ta thấy Windows 7 + Office 2010 thừa sức làm điều này thì có phải ta nên dùng nó không (thay vì phải cài 1 phần mềm khác) ---> Đằng nào cũng CÀI, thôi thì cái 1 món mà xài được nhiều món khác cũng ngon lành mà
Ẹc... ẹc...
 
Thưa thày em không hiểu bản chất của Print kiểu Send to OneNote là gì? Tại sao lại cứ phải có máy in dạng ảo ah. Kính mong thày và mọi người chỉ dùm em.

Ai mà biết đâu nè
Thật ra cái link tôi cho bạn ở trên tôi chỉ đọc sơ qua, thấy có công đoạn Send to OneNote thì lập tức thí nghiệm... Phần sau đó tôi tự làm toàn bộ
Thí nghiệm thì thấy vậy chứ tôi cũng chưa xài OneNote bao giờ (nó có vẻ giống giống Power Point nhỉ)
 
Ai mà biết đâu nè
Thật ra cái link tôi cho bạn ở trên tôi chỉ đọc sơ qua, thấy có công đoạn Send to OneNote thì lập tức thí nghiệm... Phần sau đó tôi tự làm toàn bộ
Thí nghiệm thì thấy vậy chứ tôi cũng chưa xài OneNote bao giờ (nó có vẻ giống giống Power Point nhỉ)

Em thấy nó giống máy in ảo, nó thiêt lập những cái giống như từng trang của Print Preview vào các trang của OneNote. Thật sự em cũng chưa biết phải dùng nó như thế nào, nhưng với máy tính mà không kết nối với máy in, nó hay chuyển qua OneNote.
 
Trong office2010, Tool chụp hình nó nằm ở vị trí nào? Em mò trong Phần mềm Portable nhưng chưa thấy.

Mở Excel lên, chuyển sang tab Insert, bấm nút ScreenShot
Ứng dụng này dùng để chụp hình nguyên cửa sổ của 1 ứng dụng khác đang mở
Còn trong Windows 7 thì: Bấm Start, gõ chữ Snipping Tool rồi Enter sẽ có ngay ứng dụng chụp hình
Với Snipping Tool, bạn có thể chụp bất cứ thứ gì bạn thích (nó linh hoạt hơn ScreenShot trong Office)
 
Mở Excel lên, chuyển sang tab Insert, bấm nút ScreenShot
Ứng dụng này dùng để chụp hình nguyên cửa sổ của 1 ứng dụng khác đang mở

Như ta biết ScreenShot dùng để chụp cửa sổ của 1 ứng dụng khác
Vậy nhân đây xin đố 1 câu: Làm sao dùng ScreenShot để tự chụp ứng dụng của chính mình? ---> Có nghĩa là: Mở MS Word, gọi ScreenShot rồi chụp cửa sổ ứng dụng của MS Word
Ẹc... Ẹc...
 
Cách đó cũng tương tự như cách bài 5 tôi đã giới thiệu rồi còn gì

Cách đổi đuôi thành ZIP hoặc RAR chỉ áp dụng được với định dạng docx hoặc xlsx trong khi cách Save As Web Page áp dụng được tất tần tật

Tôi chậm hiểu nên nhờ ndu giải thích.
Tôi đọc chủ đề thấy nói là cần ghi từng trang thành JPG. Tôi hiểu là vd. có 5 trang thì ghi 5 trang thành 5 JPG. Bây giờ chủ topic lại khoe rằng tìm ra cách đơn giản để lấy "ảnh nhúng", tức lấy tất cả các ảnh đã "nhúng" trong 5 trang? Những cái "ảnh nhúng" này thì có điểm gì giống với ảnh của 5 trang?
Vậy thì "ta" muốn gì? Lấy "ảnh nhúng" hay lấy ảnh của các trang?
Nếu là ảnh nhúng thì Web Page --> mở bằng trình duyệt --> thích ảnh nào thì chuột phải rồi save chứ còn gì nữa
------------
Nếu ai có WORD 2007 thì: Nút Office --> Save As --> Find Add-ins for others file formats --> trong trang help mở ra có đường dẫn để tải "Microsoft Save as PDF or XPS Add-in for 2007 Microsoft Office"
Sau khi tải về và cài đặt thì: Save As --> chọn PDF or XPS
----------------
Nếu ai đó thích "vọc" code hoặc muốn giúp tôi thử nghiệm thì xin vui lòng đọc tiếp.
Khi đọc các thuộc tính trong WORD thì tôi thấy: Window có thuộc tính Panes mà mỗi Pane có thuộc tính Pages là tập các Page. Nhìn qua thì tôi "cảm thấy" nếu có 5 trang thì sẽ có 5 Page trong tập Pages. Page lại có thuộc tính EnhMetaFileBits
Cái tên EnhMetaFileBits đã nói "rất nhiều", tôi đoán là nó trả về một mảng bai "đại diện" cho hình ảnh của trang. Đọc help về EnhMetaFileBits thì thấy đúng là thế. Vậy tôi nảy ra ý tưởng ghi mảng bai đó ra đĩa và gán cho nó định dạng "emf". Thực ra lúc này chưa có "điểm bám" nên cứ ghi bừa ra thế để xem "mặt mũi" cái ghi ra nó thế nào.
Để làm điều này tôi thao tác như sau: mở tập tin DOC --> Alt + F11 --> đúp chuột vào ThisDocument --> Insert --> Module --> Module1 được thêm vào. Sau đây là code của Module1:
[GPECODE=vb]
Private Declare Function CopyEnhMetaFile Lib "gdi32.dll" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function SetEnhMetaFileBits Lib "gdi32.dll" (ByVal cbBuffer As Long, ByRef lpData As Byte) As Long
Private Declare Function DeleteEnhMetaFile Lib "gdi32.dll" (ByVal hemf As Long) As Long
Sub hichic()
Dim pg As Page, m() As Byte, h As Long, k As Long, ImageStream As Object
For Each pg In Application.ActiveWindow.Panes(1).Pages
m = pg.EnhMetaFileBits
h = SetEnhMetaFileBits(UBound(m) + 1, m(0))
CopyEnhMetaFile h, "c:\hichic" & CLng(k) & ".emf"
DeleteEnhMetaFile h
k = k + 1
Next
End Sub
[/GPECODE]
Chọn Run để chạy Sub hichic.
Trên C tôi đã có ảnh của các trang.
Bây giờ là khúc mắc của tôi, nhờ các bạn kiểm tra hộ.
Khi tôi chuột phải lên tập tin EMF và chọn Preview (Preview mặc định của Windows) thì tôi thấy ảnh của trang. Nhưng khi tôi chuột phải và chọn Paint để mở thì có vấn đề - Paint chiếm RAM vài trăm MB và "nghĩ mãi". Mở bằng Corel cũng không chuẩn.
Nhưng nếu tôi chuột phải và chọn Misrosoft Office Picture Manager thì tôi có ảnh. Nếu tiếp theo tôi chọn File --> Export --> chọn Format là JPG thì sau đó tập tin JPG mở được ngon lành bằng Paint, Corel hay bất cứ ct nào.
Thực ra tôi có thể thay ghi trực tiếp mảng bai ra đĩa bằng cách thay code Sub hichic bằng code:
[GPECODE=vb]
Sub hichic()
Dim pg As Page, m() As Byte, h As Long, k As Long, ImageStream As Object
For Each pg In Application.ActiveWindow.Panes(1).Pages
m = pg.EnhMetaFileBits
Open "c:\bla" & CLng(k) & ".emf" For Binary As #1
Put #1, , m
Close #1
k = k + 1
Next
End Sub
[/GPECODE]
Thì các kết quả như nhau, tức mở bằng Paint, Corel có vấn đề nhưng chuột phải chọn Preview hay chọn Misrosoft Office Picture Manager thì xem được và Export ngon lành. Chỉ có điều các tập tin EMF ở trường hợp sau có dung lượng lớn hơn.
Nhờ các bạn kiểm tra mở thẳng tập tin EMF bằng Paint xem thế nào.
 
Tôi chậm hiểu nên nhờ ndu giải thích.
Tôi đọc chủ đề thấy nói là cần ghi từng trang thành JPG. Tôi hiểu là vd. có 5 trang thì ghi 5 trang thành 5 JPG. Bây giờ chủ topic lại khoe rằng tìm ra cách đơn giản để lấy "ảnh nhúng", tức lấy tất cả các ảnh đã "nhúng" trong 5 trang? Những cái "ảnh nhúng" này thì có điểm gì giống với ảnh của 5 trang?
Vậy thì "ta" muốn gì? Lấy "ảnh nhúng" hay lấy ảnh của các trang?
Nếu là ảnh nhúng thì Web Page --> mở bằng trình duyệt --> thích ảnh nào thì chuột phải rồi save chứ còn gì nữa
.

Ah, không anh à!
Tức là sau khi Print bằng máy ảo Send To OneNote xong, sang chương trình OneNote, ta Save As thành Word Document thì ta sẽ được 1 file Word mà mỗi trang là 1 Picture. Từ file Word mới này mới làm tiếp chuyện đổi đuôi hay Save Web Page gì đó
(chứ file gốc thì làm quái gì có hình mà lấy)
 
Ah, không anh à!
Tức là sau khi Print bằng máy ảo Send To OneNote xong, sang chương trình OneNote, ta Save As thành Word Document thì ta sẽ được 1 file Word mà mỗi trang là 1 Picture. Từ file Word mới này mới làm tiếp chuyện đổi đuôi hay Save Web Page gì đó
(chứ file gốc thì làm quái gì có hình mà lấy)

Cám ơn Tuấn.

Còn việc tôi nhờ các bạn thì ai rảnh rỗi hãy giúp tôi "voc" với.
 
----------------
Trở lại vấn đề convert trang word thành picture, mình thấy dù gì cũng phải cần 1 phần mềm nào đó. Vậy nếu ta thấy Windows 7 + Office 2010 thừa sức làm điều này thì có phải ta nên dùng nó không (thay vì phải cài 1 phần mềm khác) ---> Đằng nào cũng CÀI, thôi thì cái 1 món mà xài được nhiều món khác cũng ngon lành mà
Ẹc... ẹc...

Em sử dụng chức năng Snipping Tool để chụp màn hình, nó rất tiện lợi, tuy nhiên độ phân giải màn hình hơi thấp (chất lượng chưa rõ nét lắm), có cách nào để tăng chất lượng hình ảnh chụp lên không ah?
 
Cám ơn Tuấn.

Còn việc tôi nhờ các bạn thì ai rảnh rỗi hãy giúp tôi "voc" với.

Hôm nay rảnh, lại lôi code của anh ra để test! Đúng như trình trạng anh đã nêu:
- Mở file bằng MS Paint nó ngốn RAM nhiều hơn
- Export sang JPE thì dung lượng lớn hơn file gốc (khoảng gấp đôi)
Có điều máy em dù mở bằng MS Paint hay bằng cái gì thì vẫn.. trơn tru, không "nặng" tí nào
(máy em Core 2 - 2.2GHz và RAM 2GB)
--------------------------
Nói thật lòng: Chẳng phải ngại gì việc test mấy code đơn giản này, chẳng qua là em... GHÉT WORD
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
Thày chỉ e trình tự các bước làm chuyển từ file word sang JPG dùng bằng code của thày với ạ? E cám ơn!
 
Mình nghỉ là nên chuyển sang dạng máy in ảo. Mình ấn lệnh in => sau đó sẽ chọn đầu ra là dạng ảnh => In
Kết quả sẽ là file Word được save thành 1 file ảnh với đúng kích cỡ.
Mình thấy cách này khá tiện
 
chỉ có cách là bạn xuất ra file pdf sau đó từ pdf xuất ra file hình ảnh jpg
 

Bài viết mới nhất

Back
Top Bottom