This dll helps convert doc and docx to plain text.
Recently 64bit version released, but it is not working the same way the 32 is working.
Please help me understand and use it.
Any help highly appreciated, thanks in advance
xd2tx2161_x64.zip = https://drive.google.com/open?id=1BkioN ... 978U2nIbMb
32bit Version PERFECT
Code: Select all
MsgBox, 262144,%AppName% %A_LineNumber%, % ExtractText(Content, FilePath)
ExtractText(ByRef OutputVar, Search)
{
static hModule := DllCall("LoadLibrary", "Str", "xd2txlib.dll", "Ptr")
fileLength := DllCall("xd2txlib\ExtractText", "Str", Search, "Int", False, "Int*", fileText)
OutputVar := StrGet( fileText, fileLength / 2 )
}
Return
Code: Select all
ExtractText( fileName, False, fileText)
---------------------------------------------
public delegate int ExtractText(
[MarshalAs(UnmanagedType.BStr)] String lpFileName,
bool bProp,
[MarshalAs(UnmanagedType.BStr)] ref String lpFileText);
string fileName = "sample.doc";
string fileText = "";
// "®"I‚Édll‚ðƒ[ƒh‚µAŽg—pŒã‚ɉð•ú
IntPtr handle = LoadLibrary("xd2txlib.dll");
IntPtr funcPtr = GetProcAddress(handle, "ExtractText");
ExtractText extractText = (ExtractText)Marshal.GetDelegateForFunctionPointer(funcPtr, typeof(ExtractText));
int fileLength = extractText(fileName, false, ref fileText);
FreeLibrary(handle);
64bit Version Help File
Code: Select all
xd2txlib.dll‚ɂ‚¢‚Ä
xdoc2txt‚ÌDLL"Å‚Å‚·B
'˜ìŒ E—˜—pðŒ‚ÍAxdoc2txt‚É€‚¶‚Ü‚·B
"z•zƒtƒ@ƒCƒ‹
xd2txlib.dll xdoc2txt DLL"Å
Sample1/* C# ƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€(DllImport"ÅF"ñ„§)
Sample2/* VB.Net ƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€(DllImport"ÅF"ñ„§)
Sample3/* C++ ƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€
Sample4/* C# ƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€(LoadLibrary"ÅF„§)
Sample5/* VB.Net ƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€(LoadLibrary"ÅF„§FVisual Studio2010—p)
FileFind/* C# ƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€iƒtƒ@ƒCƒ‹ŒŸõƒNƒ‰ƒCƒAƒ"ƒg‚Ì—áj
'ˆÓŽ–€
Exd2txlib.dll(64bit"Å)‚ðŒÄ‚Ño‚·ƒAƒvƒŠƒP[ƒVƒ‡ƒ"‚ðŠJ"‚·‚é‚Æ‚«‚ÍAƒ^[ƒQƒbƒgCPU‚ðAnyCPU‚É‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
C# ƒvƒƒpƒeƒB¨ƒrƒ‹ƒh¨ƒvƒ‰ƒbƒgƒtƒH[ƒ€ƒ^[ƒQƒbƒg(G): AnyCPU
VB.Net ƒvƒƒpƒeƒB¨ƒRƒ"ƒpƒCƒ‹¨Ú׃Rƒ"ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ"(A)¨ƒ^[ƒQƒbƒgCPU(U):AnyCPU
Exd2txlib.dll‚ÍCOMƒIƒuƒWƒFƒNƒg‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚Ì‚ÅADllImport‚Ü‚½‚ÍLoadLibrary‚ŌĂÑo‚·•K—v‚ª‚ ‚è‚Ü‚·B
@‹ï'Ì"I‚ÈŽg—p•û–@‚̓Tƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€‚ðŽQÆ‚µ‚Ä‚‚¾‚³‚¢B
Eyd—vzxd2txlib.dll‚̃[ƒh•û–@‚ÍADllImport‚Ü‚½‚ÍLoadLibrary‚Ì•û–@‚ª‚ ‚è‚Ü‚·‚ªA
@DllImport"ł̓AƒvƒŠƒP[ƒVƒ‡ƒ"‚ªI—¹‚·‚é‚܂Ńƒ‚ƒŠ‚ª‰ð•ú‚³‚ê‚È‚¢‚½‚ßA
@—\Šú‚µ‚È‚¢"ü—̓tƒ@ƒCƒ‹‚É‚æ‚éƒNƒ‰ƒbƒVƒ…‚ª‹N‚«‚½ê‡‚ɃAƒvƒŠƒP[ƒVƒ‡ƒ"Ž©'Ì‚ªˆÙíI—¹‚·‚é‰Â"\«‚ª‚ ‚è‚Ü‚·B
˜A'±‚µ‚ăeƒLƒXƒg'Šo‚ðs‚¤ê‡‚ÍA1ƒtƒ@ƒCƒ‹‚Ì'Šo–ˆ‚ÉLoadLibrary & FreeLibrary‚Å
@–ˆ‰ñxd2txlib.dll‚ðƒ[ƒhE‰ð•ú‚·‚邱‚Æ‚ð‚¨Š©‚ß‚µ‚Ü‚·BSample4,Sample5‚ðŽQÆ‚µ‚Ä‚‚¾‚³‚¢B
Exd2txlib.dll(xdoc2txt)‚̓ƒ‚ƒŠã‚Ńtƒ@ƒCƒ‹‚Ì"WŠJ‚¨‚æ‚уGƒ"ƒR[ƒh‚ðs‚¤‚½‚ßAŽÀƒƒ‚ƒŠ‚ð'´‚¦‚é‹'å‚ȃtƒ@ƒCƒ‹‚͈µ‚¦‚Ü‚¹‚ñB
Exd2txlib.dll‚̓Tƒ|[ƒg‚µ‚Ä‚¢‚éŠg'£ŽqˆÈŠO‚̓eƒLƒXƒgƒtƒ@ƒCƒ‹‚ÆŒ©‚È‚µ‚ăGƒ"ƒR[ƒh‚ðŽŽ‚Ý‚Ü‚·BƒoƒCƒiƒŠƒtƒ@ƒCƒ‹‚Å‚ÍŽg—p‚µ‚È‚¢‚Å‚‚¾‚³‚¢B
'è‹`F
int ExtractText(BSTR lpFileName, // "ü—̓tƒ@ƒCƒ‹–¼
bool bProp, // T:ƒvƒƒpƒeƒB‚Ì'Šo F:–{•¶ƒeƒLƒXƒg‚Ì'Šo
BSTR *lpFileText) // 'Šo‚µ‚½ƒeƒLƒXƒg
int ExtractTextEx(BSTR lpFileName, // "ü—̓tƒ@ƒCƒ‹–¼
bool bProp, // T:ƒvƒƒpƒeƒB‚Ì'Šo F:–{•¶ƒeƒLƒXƒg‚Ì'Šo
BSTR lpOptions, // ƒRƒ}ƒ"ƒhƒ‰ƒCƒ"ƒIƒvƒVƒ‡ƒ"(-r -o -g -x ‚Ì‚Ý—LŒø)
BSTR *lpFileText) // 'Šo‚µ‚½ƒeƒLƒXƒg
ƒeƒLƒXƒg‚Ì'ŠoŒ‹‰Ê‚ÍUTF16‚Å‚·B
C#‚Ì—á(1)FDllImport"Å
[DllImport("xd2txlib.dll", CharSet = CharSet.Unicode,
CallingConvention = CallingConvention.Cdecl)]
public static extern int ExtractText(
[MarshalAs(UnmanagedType.BStr)] String lpFileName,
bool bProp,
[MarshalAs(UnmanagedType.BStr)] ref String lpFileText);
string fileName = "sample.doc";
string fileText = "";
int fileLength = ExtractText( fileName, false, ref fileText );
C#‚Ì—á(2)F"®"Iƒ[ƒh"Åi„§j
// LoadLibraryAFreeLibraryAGetProcAddress‚ðƒCƒ"ƒ|[ƒg
[DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
internal static extern IntPtr LoadLibrary(string lpFileName);
[DllImport("kernel32", SetLastError = true)]
internal static extern bool FreeLibrary(IntPtr hModule);
[DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = false)]
internal static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
// ŠÖ"‚ðdelegate‚Å錾‚·‚é
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int ExtractText(
[MarshalAs(UnmanagedType.BStr)] String lpFileName,
bool bProp,
[MarshalAs(UnmanagedType.BStr)] ref String lpFileText);
string fileName = "sample.doc";
string fileText = "";
// "®"I‚Édll‚ðƒ[ƒh‚µAŽg—pŒã‚ɉð•ú
IntPtr handle = LoadLibrary("xd2txlib.dll");
IntPtr funcPtr = GetProcAddress(handle, "ExtractText");
ExtractText extractText = (ExtractText)Marshal.GetDelegateForFunctionPointer(funcPtr, typeof(ExtractText));
int fileLength = extractText(fileName, false, ref fileText);
FreeLibrary(handle);
VB.Net‚Ì—á(1)FDllImport"Å
<DllImport("xd2txlib.dll", SetLastError:=True, CharSet:=CharSet.Unicode, CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function _
ExtractText( _
<MarshalAs(UnmanagedType.BStr)> ByVal lpFileName As String, _
ByVal bProp As Boolean, _
<MarshalAs(UnmanagedType.BStr)> ByRef lpFileText As String _
) As Integer
End Function
Dim fileName As String
Dim fileText As String
fileName = "sample.doc"
fileText = ""
ExtractText( fileName, False, fileText)
VB.Net‚Ì—á(2)F"®"Iƒ[ƒh"Åi„§j
'********************************************************
'* LoadLibrary,FreeLibrary,GetProcAddress ‚Ì錾
'********************************************************
<DllImport("kernel32", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
End Function
<DllImport("kernel32", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function FreeLibrary(ByVal hModule As IntPtr) As Boolean
End Function
<DllImport("kernel32", CharSet:=CharSet.Ansi, SetLastError:=True)> _
Private Shared Function GetProcAddress(ByVal hModule As IntPtr, ByVal lpProcName As String) As IntPtr
End Function
'********************************************************
'* ExtractText‚Ì錾
'********************************************************
<UnmanagedFunctionPointer(CallingConvention.Cdecl)> _
Delegate Sub ExtractText( _
<MarshalAs(UnmanagedType.BStr)> ByVal lpFileName As String, _
ByVal bProp As Boolean, _
<MarshalAs(UnmanagedType.BStr)> ByRef lpFileText As String _
)
Dim fileText As String
Dim fileName As String
fileText = ""
fileName = "sample.doc"
' xd2txlib.dll ‚ðLoadLibraryŒo—R‚Ń[ƒh
Dim TaragetDll As String = "xd2txlib.dll"
Dim TaragetFunc As String = "ExtractText"
Dim hModule As UInt32 = LoadLibrary(TaragetDll)
If hModule = 0 Then
TextBox1.Text = "xd2txlib.dll not found"
Exit Sub
End If
' •ÏŠ·‚ÌŽÀs
Dim ptr As IntPtr
ptr = GetProcAddress(hModule, "ExtractText")
If ptr <> IntPtr.Zero Then
Dim dllFunc As ExtractText = _
Marshal.GetDelegateForFunctionPointer( _
ptr, _
GetType(ExtractText) _
)
Call dllFunc(fileName, False, fileText)
End If
' DLL‚̉ð•ú
Call FreeLibrary(hModule)
ŒÄ‚Ño‚µ•ûŽ®
ExtractText ‚̌ĂÑo‚µ•ûŽ®‚Ístdcall‚Å‚Í‚È‚cdecl‚Å‚·‚Ì‚ÅAŒÄ‚Ño‚µŽž‚É–¾Ž¦‚µ‚Ä‚‚¾‚³‚¢B
iƒTƒ"ƒvƒ‹ƒvƒƒOƒ‰ƒ€ŽQÆj
srdcall‚ŌĂÑo‚·‚ÆAƒXƒ^ƒbƒN‚ª•sˆÀ'è‚É‚È‚é‰Â"\«‚ª‚ ‚è‚Ü‚·B
—š—ð
2017/07/05 64bit"Å'ljÁ
2012/11/15 ˆø"‚Ì•À‚Ñ‚ðCOMƒRƒ"ƒ|[ƒlƒ"ƒg"Å‚Æ"¯‚¶‚É‚µ‚½
2012/11/13 xdoc2txt 2.0‚ÌDLL"Å‚Æ‚µ‚Ä"z•z
2014/06/14 "®"Iƒ[ƒh‚̃Tƒ"ƒvƒ‹(Sample4,Sample5)‚ð'ljÁ
2015/03/11 ŒÄ‚Ño‚µ‹K–ñcdecl‚𖾎¦